diff options
author | Hans Breuer <hans@breuer.org> | 2001-08-11 20:27:36 +0000 |
---|---|---|
committer | Hans Breuer <hans@src.gnome.org> | 2001-08-11 20:27:36 +0000 |
commit | 0b5db507da8fff0c9d4fad16c4b4fc569ffb3ec0 (patch) | |
tree | b7c4593df4d6ff4ee476a9944e515698d6fe99ac /gtk/gtkaspectframe.c | |
parent | 4041a889cd7f8219568ffbf49a611029786680eb (diff) | |
download | gtk+-0b5db507da8fff0c9d4fad16c4b4fc569ffb3ec0.tar.gz |
coalescing property notifies
2001-08-11 Hans Breuer <hans@breuer.org>
* gtk/gtkalignment.c, gtk/gtkarrow.c, gtk/gtkaspectframe.c,
gtk/gtkcellrenderer.c, gtk/gtkcellrenderertext.c,
gtk/gtkcombo.c, gtk/gtkcurve.c, gtk/gtkfontsel.c,
gtk/gtklayout.c, gtk/gtkmisc.c, gtk/gtkpacker.c,
gtk/gtkprogress.c, gtk/gtkruler.c,, gtk/gtksettings.c,
gtk/gtkspinbutton.c, gtk/gtktexttag.c : coalescing property notifies
* gtk/gtkclist.c, gtk/gtktipsquery.c, gtk/gtktexttag.c,
gtk/gtkwidget.c : added G_SIGNAL_TYPE_STATIC_SCOPE to all
GDK_TYPE_EVENT signals
* gtk/gtkalignment.c : removed 'direct allocation bug',
which Tim discovered while reading the patch
Diffstat (limited to 'gtk/gtkaspectframe.c')
-rw-r--r-- | gtk/gtkaspectframe.c | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/gtk/gtkaspectframe.c b/gtk/gtkaspectframe.c index 1dec4a392b..d2e5486065 100644 --- a/gtk/gtkaspectframe.c +++ b/gtk/gtkaspectframe.c @@ -241,8 +241,6 @@ gtk_aspect_frame_set (GtkAspectFrame *aspect_frame, gfloat ratio, gboolean obey_child) { - gboolean needs_resize = FALSE; - g_return_if_fail (GTK_IS_ASPECT_FRAME (aspect_frame)); xalign = CLAMP (xalign, 0.0, 1.0); @@ -250,33 +248,37 @@ gtk_aspect_frame_set (GtkAspectFrame *aspect_frame, ratio = CLAMP (ratio, MIN_RATIO, MAX_RATIO); obey_child = obey_child != FALSE; - if (aspect_frame->xalign != xalign) + if ( (aspect_frame->xalign != xalign) + || (aspect_frame->yalign != yalign) + || (aspect_frame->ratio != ratio) + || (aspect_frame->obey_child != obey_child)) { - aspect_frame->xalign = xalign; - g_object_notify (G_OBJECT (aspect_frame), "xalign"); - needs_resize = TRUE; - } - if (aspect_frame->yalign != yalign) - { - aspect_frame->yalign = yalign; - g_object_notify (G_OBJECT (aspect_frame), "yalign"); - needs_resize = TRUE; - } - if (aspect_frame->ratio != ratio) - { - aspect_frame->ratio = ratio; - g_object_notify (G_OBJECT (aspect_frame), "ratio"); - needs_resize = TRUE; - } - if (aspect_frame->obey_child != obey_child) - { - aspect_frame->obey_child = obey_child; - g_object_notify (G_OBJECT (aspect_frame), "obey_child"); - needs_resize = TRUE; - } - - if (needs_resize == TRUE) + g_object_freeze_notify (G_OBJECT (aspect_frame)); + + if (aspect_frame->xalign != xalign) + { + aspect_frame->xalign = xalign; + g_object_notify (G_OBJECT (aspect_frame), "xalign"); + } + if (aspect_frame->yalign != yalign) + { + aspect_frame->yalign = yalign; + g_object_notify (G_OBJECT (aspect_frame), "yalign"); + } + if (aspect_frame->ratio != ratio) + { + aspect_frame->ratio = ratio; + g_object_notify (G_OBJECT (aspect_frame), "ratio"); + } + if (aspect_frame->obey_child != obey_child) + { + aspect_frame->obey_child = obey_child; + g_object_notify (G_OBJECT (aspect_frame), "obey_child"); + } + g_object_thaw_notify (G_OBJECT (aspect_frame)); + gtk_widget_queue_resize (GTK_WIDGET(aspect_frame)); + } } static void |