summaryrefslogtreecommitdiff
path: root/gtk/gtkwidget.c
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>2004-10-05 19:02:49 +0000
committerTim Janik <timj@src.gnome.org>2004-10-05 19:02:49 +0000
commit229388f26d975d42d9181f2890b5b1ecd72569ea (patch)
tree1c63fa61cec23c9e18e00a69b4e33f0f0a9b6b2a /gtk/gtkwidget.c
parenteac2b41acb4d0ebb37fdc82adc15fa8ef40e7803 (diff)
downloadgtk+-229388f26d975d42d9181f2890b5b1ecd72569ea.tar.gz
reverted my last change and applied owen's leaner conditional flag update
Tue Oct 5 21:00:54 2004 Tim Janik <timj@gtk.org> * gtk/gtkwidget.c (gtk_widget_size_allocate): reverted my last change and applied owen's leaner conditional flag update which should be good enough to preserve resizing flag invariants.
Diffstat (limited to 'gtk/gtkwidget.c')
-rw-r--r--gtk/gtkwidget.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 8992752266..ad1257c97e 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -2675,7 +2675,8 @@ gtk_widget_size_allocate (GtkWidget *widget,
g_return_if_fail (GTK_IS_WIDGET (widget));
alloc_needed = GTK_WIDGET_ALLOC_NEEDED (widget);
- GTK_PRIVATE_UNSET_FLAG (widget, GTK_ALLOC_NEEDED);
+ if (!GTK_WIDGET_REQUEST_NEEDED (widget)) /* Preserve request/allocate ordering */
+ GTK_PRIVATE_UNSET_FLAG (widget, GTK_ALLOC_NEEDED);
old_allocation = widget->allocation;
real_allocation = *allocation;
@@ -2705,13 +2706,7 @@ gtk_widget_size_allocate (GtkWidget *widget,
old_allocation.y != real_allocation.y);
if (!alloc_needed && !size_changed && !position_changed)
- {
- if (GTK_WIDGET_REQUEST_NEEDED (widget))
- { /* another resize has been queued */
- gtk_widget_queue_resize (widget);
- }
- return;
- }
+ return;
g_signal_emit (widget, widget_signals[SIZE_ALLOCATE], 0, &real_allocation);
@@ -2750,11 +2745,6 @@ gtk_widget_size_allocate (GtkWidget *widget,
gtk_widget_invalidate_widget_windows (widget->parent, invalidate);
gdk_region_destroy (invalidate);
}
-
- if (GTK_WIDGET_REQUEST_NEEDED (widget))
- { /* another resize has been queued */
- gtk_widget_queue_resize (widget);
- }
}
/**