Re: [HELP REQUEST] property notifies and coalescing them
- From: Hans Breuer <hans breuer org>
- To: Tim Janik <timj gtk org>
- Cc: Gtk+ Developers <gtk-devel-list gnome org>
- Subject: Re: [HELP REQUEST] property notifies and coalescing them
- Date: Sat, 11 Aug 2001 12:16:36 +0200
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]