summaryrefslogtreecommitdiff
path: root/gtk/gtkaspectframe.c
diff options
context:
space:
mode:
authorHans Breuer <hans@breuer.org>2001-08-11 20:27:36 +0000
committerHans Breuer <hans@src.gnome.org>2001-08-11 20:27:36 +0000
commit0b5db507da8fff0c9d4fad16c4b4fc569ffb3ec0 (patch)
treeb7c4593df4d6ff4ee476a9944e515698d6fe99ac /gtk/gtkaspectframe.c
parent4041a889cd7f8219568ffbf49a611029786680eb (diff)
downloadgtk+-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.c56
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