Re: [HELP REQUEST] property notifies and coalescing them



At 05:01 11.08.01 +0200, Tim Janik wrote:
>On Fri, 10 Aug 2001, Hans Breuer wrote:
>
>> At 17:11 10.08.01 +0200, Tim Janik wrote:
>> >hi all,
>> >
>> >could people, when adding property notification, please
>> >make an attempt at coalescing them where possible?
>> >
>> >the only place where this is not required is inside of _set_property()
>> >implementations. for other functions that call g_object_notify() multiple
>> >times, or funcitons that call multiple subroutines which notify
>> >properties, adding g_object_freeze_notify/g_object_thaw_notify
>> >is appropriate.
>> >
>> >if some volounteer has time to investigate multiple property
>> >notifies without freezing/thawing the queue and [...]
>>
>> BTW: (from one of my 'Re: some performance notes')
>> > * ~10% of the non-debug time was spent copying GdkEvent structures.
>> >   This is easily fixed by adding G_SIGNAL_STATIC_SCOPE to
>> >   the GdkEvent signals. (this was part of the signal overhead
>> >   mentioned above)
>> >
>> This is adding '| G_SIGNAL_TYPE_STATIC_SCOPE' to every 
>> g_new_signal (..., GDK_TYPE_EVENT), right ?
>> It appears to really give a performance gain of about 10%.
>> Ok to apply a patch ?
>
>at least for all events in gtkwidget.c, which are emitted from
>gtk_widget_event(), this is ok, as the event will definitely
>stay around for the duration of a gtk_widget_event() call (the
>caller has to ensure that).
>

Combined patch below (excluding white-space-changes). Okt to commit?

Thanks,
 	Hans

Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gtk+/ChangeLog,v
retrieving revision 1.2167
diff -u -b -r1.2167 ChangeLog
--- ChangeLog	2001/08/10 15:33:27	1.2167
+++ ChangeLog	2001/08/11 10:19:32
@@ -1,3 +1,16 @@
+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 : 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
+
 Fri Aug 10 16:55:53 2001  Tim Janik  <timj gtk org>
 
 	* gtk/gtkwindow.c (gtk_window_set_policy): coalesce multiple
Index: gtk/gtkalignment.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkalignment.c,v
retrieving revision 1.18
diff -u -b -r1.18 gtkalignment.c
--- gtk/gtkalignment.c	2001/07/18 23:39:21	1.18
+++ gtk/gtkalignment.c	2001/08/11 10:20:07
@@ -247,8 +247,6 @@
 		   gfloat        xscale,
 		   gfloat        yscale)
 {
-  gboolean values_changed = FALSE; 
-  
   g_return_if_fail (GTK_IS_ALIGNMENT (alignment));
 
   xalign = CLAMP (xalign, 0.0, 1.0);
@@ -256,33 +254,34 @@
   xscale = CLAMP (xscale, 0.0, 1.0);
   yscale = CLAMP (yscale, 0.0, 1.0);
 
+  if (   (alignment->xalign != xalign)
+      || (alignment->yalign != yalign)
+      || (alignment->xscale != xscale)
+      || (alignment->yscale != yscale))
+    {
+      g_object_freeze_notify (G_OBJECT (alignment));
   if (alignment->xalign != xalign)
     {
-       values_changed = TRUE;
        alignment->xalign = xalign;
        g_object_notify (G_OBJECT(alignment), "xalign");
     }
   if (alignment->yalign != yalign)
     {
-       values_changed = TRUE;
        alignment->yalign = yalign;
        g_object_notify (G_OBJECT(alignment), "yalign");
     }
   if (alignment->xscale != xscale)
     {
-       values_changed = TRUE;
        alignment->xscale = xscale;
        g_object_notify (G_OBJECT(alignment), "xscale");
     }
   if (alignment->yscale != yscale)
     {
-       values_changed = TRUE;
        alignment->yscale = yscale;
        g_object_notify (G_OBJECT(alignment), "yscale");
     }
+      g_object_thaw_notify (G_OBJECT (alignment));
 
-   if (values_changed == TRUE)
-    {
       gtk_widget_size_allocate (GTK_WIDGET (alignment), &(GTK_WIDGET
(alignment)->allocation));
       gtk_widget_queue_draw (GTK_WIDGET (alignment));
     }
Index: gtk/gtkarrow.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkarrow.c,v
retrieving revision 1.16
diff -u -b -r1.16 gtkarrow.c
--- gtk/gtkarrow.c	2001/07/18 23:39:21	1.16
+++ gtk/gtkarrow.c	2001/08/11 10:20:08
@@ -194,26 +194,27 @@
 	       GtkArrowType   arrow_type,
 	       GtkShadowType  shadow_type)
 {
-  gboolean changed = FALSE;
-   
   g_return_if_fail (GTK_IS_ARROW (arrow));
 
+  if (   ((GtkArrowType) arrow->arrow_type != arrow_type)
+      || ((GtkShadowType) arrow->shadow_type != shadow_type))
+    {
+      g_object_freeze_notify (G_OBJECT (arrow));
+
   if ((GtkArrowType) arrow->arrow_type != arrow_type)
     {
       arrow->arrow_type = arrow_type;
       g_object_notify (G_OBJECT (arrow), "arrow_type");
-      changed = TRUE;
     }
 
   if ((GtkShadowType) arrow->shadow_type != shadow_type)
     {
       arrow->shadow_type = shadow_type;
       g_object_notify (G_OBJECT (arrow), "shadow_type");
-      changed = TRUE;
     }
 
-  if (changed == TRUE)
-    {
+      g_object_freeze_notify (G_OBJECT (arrow));
+
       if (GTK_WIDGET_DRAWABLE (arrow))
 	gtk_widget_queue_clear (GTK_WIDGET (arrow));
     }
Index: gtk/gtkaspectframe.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkaspectframe.c,v
retrieving revision 1.25
diff -u -b -r1.25 gtkaspectframe.c
--- gtk/gtkaspectframe.c	2001/07/18 23:39:21	1.25
+++ gtk/gtkaspectframe.c	2001/08/11 10:20:10
@@ -241,8 +241,6 @@
 		      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 @@
   ratio = CLAMP (ratio, MIN_RATIO, MAX_RATIO);
   obey_child = obey_child != FALSE;
   
+  if (   (aspect_frame->xalign != xalign)
+      || (aspect_frame->yalign != yalign)
+      || (aspect_frame->ratio != ratio)
+      || (aspect_frame->obey_child != obey_child))
+    {
+      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");
-      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;
     }
+      g_object_thaw_notify (G_OBJECT (aspect_frame));
    
-   if (needs_resize == TRUE)
       gtk_widget_queue_resize (GTK_WIDGET(aspect_frame));
+    }
 }
 
 static void
Index: gtk/gtkcellrenderer.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcellrenderer.c,v
retrieving revision 1.14
diff -u -b -r1.14 gtkcellrenderer.c
--- gtk/gtkcellrenderer.c	2001/06/30 02:38:16	1.14
+++ gtk/gtkcellrenderer.c	2001/08/11 10:20:12
@@ -428,6 +428,10 @@
   g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
   g_return_if_fail (width >= -1 && height >= -1);
 
+  if ((width != cell->width) || (height != cell->height))
+    {
+      g_object_freeze_notify (G_OBJECT (cell));
+
   if (width != cell->width)
     {
       cell->width = width;
@@ -438,6 +442,9 @@
     {
       cell->height = height;
       g_object_notify (G_OBJECT (cell), "height");
+        }
+
+      g_object_thaw_notify (G_OBJECT (cell));
     }
 }
 
Index: gtk/gtkcellrenderertext.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcellrenderertext.c,v
retrieving revision 1.22
diff -u -b -r1.22 gtkcellrenderertext.c
--- gtk/gtkcellrenderertext.c	2001/07/27 15:36:21	1.22
+++ gtk/gtkcellrenderertext.c	2001/08/11 10:20:16
@@ -657,6 +657,7 @@
     }
   else
     {
+      g_object_freeze_notify (G_OBJECT (celltext));
       if (celltext->family_set)
         {
           celltext->family_set = FALSE;
@@ -687,6 +688,7 @@
           celltext->size_set = FALSE;
           g_object_notify (G_OBJECT (celltext), "size_set");
         }
+      g_object_thaw_notify (G_OBJECT (celltext));
     }
 }
 
Index: gtk/gtkclist.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkclist.c,v
retrieving revision 1.200
diff -u -b -r1.200 gtkclist.c
--- gtk/gtkclist.c	2001/07/18 23:39:21	1.200
+++ gtk/gtkclist.c	2001/08/11 10:20:43
@@ -618,7 +618,7 @@
 		    GTK_TYPE_NONE, 3,
 		    GTK_TYPE_INT,
 		    GTK_TYPE_INT,
-		    GDK_TYPE_EVENT);
+		    GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   clist_signals[UNSELECT_ROW] =
     gtk_signal_new ("unselect_row",
 		    GTK_RUN_FIRST,
Index: gtk/gtkcombo.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcombo.c,v
retrieving revision 1.53
diff -u -b -r1.53 gtkcombo.c
--- gtk/gtkcombo.c	2001/07/18 23:39:22	1.53
+++ gtk/gtkcombo.c	2001/08/11 10:20:47
@@ -903,8 +903,10 @@
 
   combo->use_arrows_always = val;
   combo->use_arrows = TRUE;
+  g_object_freeze_notify (G_OBJECT (combo));
   g_object_notify (G_OBJECT (combo), "enable_arrow_keys");
   g_object_notify (G_OBJECT (combo), "enable_arrows_always");
+  g_object_thaw_notify (G_OBJECT (combo));
 }
 
 void
Index: gtk/gtkcurve.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcurve.c,v
retrieving revision 1.27
diff -u -b -r1.27 gtkcurve.c
--- gtk/gtkcurve.c	2001/07/18 23:39:22	1.27
+++ gtk/gtkcurve.c	2001/08/11 10:20:51
@@ -824,6 +824,7 @@
                      gfloat    min_y,
                      gfloat    max_y)
 {
+  g_object_freeze_notify (G_OBJECT (curve));
   if (curve->min_x != min_x) {
      curve->min_x = min_x;
      g_object_notify (G_OBJECT (curve), "min_x");
@@ -840,6 +841,7 @@
      curve->max_y = max_y;
      g_object_notify (G_OBJECT (curve), "max_y");
   }
+  g_object_thaw_notify (G_OBJECT (curve));
 
   gtk_curve_size_graph (curve);
   gtk_curve_reset_vector (curve);
Index: gtk/gtkfontsel.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkfontsel.c,v
retrieving revision 1.54
diff -u -b -r1.54 gtkfontsel.c
--- gtk/gtkfontsel.c	2001/07/18 23:39:22	1.54
+++ gtk/gtkfontsel.c	2001/08/11 10:20:56
@@ -890,8 +890,10 @@
   pango_font_description_free (fontsel->font_desc);
   fontsel->font_desc = new_desc;
 
+  g_object_freeze_notify (G_OBJECT (fontsel));
   g_object_notify (G_OBJECT (fontsel), "font_name");
   g_object_notify (G_OBJECT (fontsel), "font");
+  g_object_thaw_notify (G_OBJECT (fontsel));
   return TRUE;
 }
 
Index: gtk/gtklayout.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtklayout.c,v
retrieving revision 1.42
diff -u -b -r1.42 gtklayout.c
--- gtk/gtklayout.c	2001/08/10 03:46:07	1.42
+++ gtk/gtklayout.c	2001/08/11 10:21:00
@@ -356,6 +356,7 @@
 
   widget = GTK_WIDGET (layout);
   
+  g_object_freeze_notify (G_OBJECT (layout));
   if (width != layout->width)
      {
 	layout->width = width;
@@ -366,6 +367,7 @@
 	layout->height = height;
 	g_object_notify (G_OBJECT (layout), "height");
      }
+  g_object_thaw_notify (G_OBJECT (layout));
 
   gtk_layout_set_adjustment_upper (layout->hadjustment, layout->width);
   gtk_layout_set_adjustment_upper (layout->vadjustment, layout->height);
Index: gtk/gtkmisc.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkmisc.c,v
retrieving revision 1.23
diff -u -b -r1.23 gtkmisc.c
--- gtk/gtkmisc.c	2001/07/18 23:39:22	1.23
+++ gtk/gtkmisc.c	2001/08/11 10:21:02
@@ -233,11 +233,13 @@
           gtk_widget_queue_clear (widget);
         }
 
+      g_object_freeze_notify (G_OBJECT (misc));
       if (xalign != misc->xalign)
 	g_object_notify (G_OBJECT (misc), "xalign");
 
       if (yalign != misc->yalign)
 	g_object_notify (G_OBJECT (misc), "yalign");
+      g_object_thaw_notify (G_OBJECT (misc));
     }
 }
 
@@ -292,11 +294,13 @@
       if (GTK_WIDGET_DRAWABLE (misc))
 	gtk_widget_queue_resize (GTK_WIDGET (misc));
 
+      g_object_freeze_notify (G_OBJECT (misc));
       if (xpad != misc->xpad)
 	g_object_notify (G_OBJECT (misc), "xpad");
 
       if (ypad != misc->ypad)
 	g_object_notify (G_OBJECT (misc), "ypad");
+      g_object_thaw_notify (G_OBJECT (misc));
     }
 }
 
Index: gtk/gtkpacker.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkpacker.c,v
retrieving revision 1.21
diff -u -b -r1.21 gtkpacker.c
--- gtk/gtkpacker.c	2001/07/19 14:57:13	1.21
+++ gtk/gtkpacker.c	2001/08/11 10:21:06
@@ -627,10 +627,12 @@
       packer->default_pad_y = pad_y;
       redo_defaults_children (packer);
     
+      g_object_freeze_notify (G_OBJECT (packer));
       if (packer->default_pad_x != pad_x)
 	g_object_notify (G_OBJECT (packer), "default_pad_x");
       if (packer->default_pad_y != pad_y)	    
 	g_object_notify (G_OBJECT (packer), "default_pad_y");
+      g_object_thaw_notify (G_OBJECT (packer));
     }
 }
 
@@ -648,10 +650,12 @@
     packer->default_i_pad_y = i_pad_y;
     redo_defaults_children (packer);
     
+    g_object_freeze_notify (G_OBJECT (packer));
     if (packer->default_i_pad_x != i_pad_x)
       g_object_notify (G_OBJECT (packer), "default_ipad_x");
     if (packer->default_i_pad_y != i_pad_y)	    
       g_object_notify (G_OBJECT (packer), "default_ipad_y");
+    g_object_thaw_notify (G_OBJECT (packer));
   }
 }
 
Index: gtk/gtkprogress.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkprogress.c,v
retrieving revision 1.15
diff -u -b -r1.15 gtkprogress.c
--- gtk/gtkprogress.c	2001/07/18 23:39:23	1.15
+++ gtk/gtkprogress.c	2001/08/11 10:21:09
@@ -633,6 +633,7 @@
 
   if (progress->x_align != x_align || progress->y_align != y_align)
     {
+      g_object_freeze_notify (G_OBJECT (progress));
       if (progress->x_align != x_align)
 	{
 	  progress->x_align = x_align;
@@ -644,6 +645,7 @@
 	  progress->y_align = y_align;
 	  g_object_notify (G_OBJECT (progress), "text_yalign");
 	}
+      g_object_thaw_notify (G_OBJECT (progress));
 
       if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (progress)))
 	gtk_widget_queue_resize (GTK_WIDGET (progress));
Index: gtk/gtkruler.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkruler.c,v
retrieving revision 1.23
diff -u -b -r1.23 gtkruler.c
--- gtk/gtkruler.c	2001/07/18 23:39:23	1.23
+++ gtk/gtkruler.c	2001/08/11 10:21:11
@@ -271,6 +271,7 @@
 {
   g_return_if_fail (GTK_IS_RULER (ruler));
 
+  g_object_freeze_notify (G_OBJECT (ruler));
   if (ruler->lower != lower)
     {
       ruler->lower = lower;
@@ -291,6 +292,7 @@
       ruler->max_size = max_size;
       g_object_notify (G_OBJECT (ruler), "max_size");
     }
+  g_object_thaw_notify (G_OBJECT (ruler));
 
   if (GTK_WIDGET_DRAWABLE (ruler))
     gtk_widget_queue_draw (GTK_WIDGET (ruler));
Index: gtk/gtksettings.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtksettings.c,v
retrieving revision 1.15
diff -u -b -r1.15 gtksettings.c
--- gtk/gtksettings.c	2001/07/18 04:31:10	1.15
+++ gtk/gtksettings.c	2001/08/11 10:21:15
@@ -108,6 +108,7 @@
       i++;
   settings->property_values = g_new0 (GValue, i);
   i = 0;
+  g_object_freeze_notify (G_OBJECT (settings));
   for (p = pspecs; *p; p++)
     {
       GParamSpec *pspec = *p;
@@ -119,6 +120,7 @@
       g_object_notify (G_OBJECT (settings), pspec->name);
       i++;
     }
+  g_object_thaw_notify (G_OBJECT (settings));
   g_free (pspecs);
 }
 
Index: gtk/gtkspinbutton.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkspinbutton.c,v
retrieving revision 1.69
diff -u -b -r1.69 gtkspinbutton.c
--- gtk/gtkspinbutton.c	2001/07/18 23:39:23	1.69
+++ gtk/gtkspinbutton.c	2001/08/11 10:21:22
@@ -1471,6 +1471,7 @@
   else
     adjustment = spin_button->adjustment;
 
+  g_object_freeze_notify (G_OBJECT (spin_button));
   if (spin_button->digits != digits) 
     {
       spin_button->digits = digits;
@@ -1482,6 +1483,7 @@
       spin_button->climb_rate = climb_rate;
       g_object_notify (G_OBJECT (spin_button), "climb_rate");
     }
+  g_object_thaw_notify (G_OBJECT (spin_button));
 
   gtk_adjustment_value_changed (adjustment);
 }
Index: gtk/gtktexttag.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtktexttag.c,v
retrieving revision 1.41
diff -u -b -r1.41 gtktexttag.c
--- gtk/gtktexttag.c	2001/07/02 14:25:20	1.41
+++ gtk/gtktexttag.c	2001/08/11 10:21:30
@@ -625,7 +625,7 @@
                   G_TYPE_BOOLEAN,
                   3,
                   G_TYPE_OBJECT,
-                  GDK_TYPE_EVENT,
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE,
                   GTK_TYPE_TEXT_ITER);
 }
 
@@ -756,6 +756,7 @@
     }
   else
     {
+      g_object_freeze_notify (G_OBJECT (text_tag));
       if (text_tag->family_set)
         {
           text_tag->family_set = FALSE;
@@ -786,6 +787,7 @@
           text_tag->size_set = FALSE;
           g_object_notify (G_OBJECT (text_tag), "size_set");
         }
+      g_object_thaw_notify (G_OBJECT (text_tag));
     }
 }
 
Index: gtk/gtktipsquery.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtktipsquery.c,v
retrieving revision 1.27
diff -u -b -r1.27 gtktipsquery.c
--- gtk/gtktipsquery.c	2001/07/18 23:39:23	1.27
+++ gtk/gtktipsquery.c	2001/08/11 10:21:32
@@ -169,7 +169,7 @@
                   GTK_TYPE_WIDGET,
                   G_TYPE_STRING,
                   G_TYPE_STRING,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
 }
 
 static void
Index: gtk/gtkwidget.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkwidget.c,v
retrieving revision 1.247
diff -u -b -r1.247 gtkwidget.c
--- gtk/gtkwidget.c	2001/08/10 03:46:07	1.247
+++ gtk/gtkwidget.c	2001/08/11 10:21:56
@@ -657,7 +657,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[EVENT_AFTER] =
     g_signal_new ("event-after",
                   G_TYPE_FROM_CLASS (object_class),
@@ -665,7 +665,7 @@
                   0,
                   NULL, NULL,
                   gtk_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, GDK_TYPE_EVENT);
+                  G_TYPE_NONE, 1, GDK_TYPE_EVENT |
G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[BUTTON_PRESS_EVENT] =
     g_signal_new ("button_press_event",
                   G_TYPE_FROM_CLASS (object_class),
@@ -674,7 +674,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[BUTTON_RELEASE_EVENT] =
     g_signal_new ("button_release_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -683,7 +683,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[SCROLL_EVENT] =
     g_signal_new ("scroll_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -692,7 +692,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[MOTION_NOTIFY_EVENT] =
     g_signal_new ("motion_notify_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -701,7 +701,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[DELETE_EVENT] =
     g_signal_new ("delete_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -710,7 +710,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[DESTROY_EVENT] =
     g_signal_new ("destroy_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -719,7 +719,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[EXPOSE_EVENT] =
     g_signal_new ("expose_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -728,7 +728,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[KEY_PRESS_EVENT] =
     g_signal_new ("key_press_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -737,7 +737,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[KEY_RELEASE_EVENT] =
     g_signal_new ("key_release_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -746,7 +746,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[ENTER_NOTIFY_EVENT] =
     g_signal_new ("enter_notify_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -755,7 +755,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[LEAVE_NOTIFY_EVENT] =
     g_signal_new ("leave_notify_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -764,7 +764,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[CONFIGURE_EVENT] =
     g_signal_new ("configure_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -773,7 +773,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[FOCUS_IN_EVENT] =
     g_signal_new ("focus_in_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -782,7 +782,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[FOCUS_OUT_EVENT] =
     g_signal_new ("focus_out_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -791,7 +791,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[MAP_EVENT] =
     g_signal_new ("map_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -800,7 +800,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[UNMAP_EVENT] =
     g_signal_new ("unmap_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -809,7 +809,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[PROPERTY_NOTIFY_EVENT] =
     g_signal_new ("property_notify_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -818,7 +818,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[SELECTION_CLEAR_EVENT] =
     g_signal_new ("selection_clear_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -827,7 +827,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[SELECTION_REQUEST_EVENT] =
     g_signal_new ("selection_request_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -836,7 +836,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[SELECTION_NOTIFY_EVENT] =
     g_signal_new ("selection_notify_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -845,7 +845,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[SELECTION_RECEIVED] =
     g_signal_new ("selection_received",
 		  G_TYPE_FROM_CLASS (object_class),
@@ -875,7 +875,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[PROXIMITY_OUT_EVENT] =
     g_signal_new ("proximity_out_event",
                   G_TYPE_FROM_CLASS(object_class),
@@ -884,7 +884,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
                   gtk_marshal_BOOLEAN__BOXED,
                   G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[DRAG_LEAVE] =
     gtk_signal_new ("drag_leave",
 		    GTK_RUN_LAST,
@@ -976,7 +976,7 @@
                   _gtk_boolean_handled_accumulator, NULL,
 		  gtk_marshal_BOOLEAN__BOXED,
 		  G_TYPE_BOOLEAN, 1,
-                  GDK_TYPE_EVENT);
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[CLIENT_EVENT] =
     g_signal_new ("client_event",
 		  G_TYPE_FROM_CLASS(object_class),
@@ -985,7 +985,7 @@
 		  _gtk_boolean_handled_accumulator, NULL,
 		  gtk_marshal_BOOLEAN__BOXED,
 		  G_TYPE_BOOLEAN, 1,
-		  GDK_TYPE_EVENT);
+		  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[NO_EXPOSE_EVENT] =
     g_signal_new ("no_expose_event",
 		  G_TYPE_FROM_CLASS(object_class),
@@ -994,7 +994,7 @@
 		  _gtk_boolean_handled_accumulator, NULL,
 		  gtk_marshal_BOOLEAN__BOXED,
 		  G_TYPE_BOOLEAN, 1,
-		  GDK_TYPE_EVENT);
+		  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[WINDOW_STATE_EVENT] =
     g_signal_new ("window_state_event",
 		  G_TYPE_FROM_CLASS(object_class),
@@ -1003,7 +1003,7 @@
 		  _gtk_boolean_handled_accumulator, NULL,
 		  gtk_marshal_BOOLEAN__BOXED,
 		  G_TYPE_BOOLEAN, 1,
-		  GDK_TYPE_EVENT);
+		  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
   widget_signals[POPUP_MENU] =
     gtk_signal_new ("popup_menu",
 		    GTK_RUN_LAST | GTK_RUN_ACTION,

-------- Hans "at" Breuer "dot" Org -----------
Tell me what you need, and I'll tell you how to 
get along without it.                -- Dilbert




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]