diff options
author | Søren Sandmann <sandmann@redhat.com> | 2008-06-07 22:13:29 -0400 |
---|---|---|
committer | Søren Sandmann <sandmann@redhat.com> | 2008-06-07 22:13:29 -0400 |
commit | 8b2329b89ad8730e2c5825523c1569958964d22b (patch) | |
tree | 773b573606447e8eec62ffb1c94a26c2e330e3eb /scrollarea.c | |
parent | 548310edfa010e0a457eb1734fa0dad98ba2a267 (diff) |
Better resizing
Diffstat (limited to 'scrollarea.c')
-rw-r--r-- | scrollarea.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/scrollarea.c b/scrollarea.c index d5514cd..2c14070 100644 --- a/scrollarea.c +++ b/scrollarea.c @@ -6,6 +6,7 @@ #include "backingstore.h" + G_DEFINE_TYPE (FooScrollArea, foo_scroll_area, GTK_TYPE_CONTAINER); static GtkWidgetClass *parent_class; @@ -79,6 +80,8 @@ struct FooScrollAreaPrivate BackingStore *store; guint32 motion_notify_time; + + gboolean in_size_allocate; }; enum @@ -775,6 +778,8 @@ foo_scroll_area_size_allocate (GtkWidget *widget, GdkRectangle new_viewport; GdkRectangle old_viewport; + scroll_area->priv->in_size_allocate = TRUE; + get_viewport (scroll_area, &old_viewport); widget->allocation = *allocation; @@ -797,10 +802,18 @@ foo_scroll_area_size_allocate (GtkWidget *widget, } set_adjustment_values (scroll_area); - + get_viewport (scroll_area, &new_viewport); emit_viewport_signals (scroll_area, &new_viewport, &old_viewport); + + scroll_area->priv->in_size_allocate = FALSE; +} + +gboolean +foo_scroll_area_is_resizing (FooScrollArea *area) +{ + return area->priv->in_size_allocate; } static void |