diff options
author | Matthias Clasen <mclasen@redhat.com> | 2015-09-06 10:46:38 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2015-09-06 17:11:37 -0400 |
commit | 3077a7e025dd57071bdddaacd17c0a4d5fb06295 (patch) | |
tree | e40314970d0f517d4e1bc82417cd6d09a4b62c44 /gtk/gtkgesturesingle.c | |
parent | 89ca0db7c5c17017b1b6e32c0682dd43ecd738a0 (diff) | |
download | gtk+-3077a7e025dd57071bdddaacd17c0a4d5fb06295.tar.gz |
gesture single: Convert to g_object_notify_by_pspec
This avoids pspec lookup overhead in g_object_notify.
Diffstat (limited to 'gtk/gtkgesturesingle.c')
-rw-r--r-- | gtk/gtkgesturesingle.c | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/gtk/gtkgesturesingle.c b/gtk/gtkgesturesingle.c index 178e878cd2..065d55877e 100644 --- a/gtk/gtkgesturesingle.c +++ b/gtk/gtkgesturesingle.c @@ -58,11 +58,13 @@ struct _GtkGestureSinglePrivate enum { PROP_TOUCH_ONLY = 1, PROP_EXCLUSIVE, - PROP_BUTTON + PROP_BUTTON, + LAST_PROP }; -G_DEFINE_TYPE_WITH_PRIVATE (GtkGestureSingle, gtk_gesture_single, - GTK_TYPE_GESTURE) +static GParamSpec *properties[LAST_PROP] = { NULL, }; + +G_DEFINE_TYPE_WITH_PRIVATE (GtkGestureSingle, gtk_gesture_single, GTK_TYPE_GESTURE) static void gtk_gesture_single_get_property (GObject *object, @@ -254,14 +256,12 @@ gtk_gesture_single_class_init (GtkGestureSingleClass *klass) * * Since: 3.14 */ - g_object_class_install_property (object_class, - PROP_TOUCH_ONLY, - g_param_spec_boolean ("touch-only", - P_("Handle only touch events"), - P_("Whether the gesture handles" - " only touch events"), - FALSE, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); + properties[PROP_TOUCH_ONLY] = + g_param_spec_boolean ("touch-only", + P_("Handle only touch events"), + P_("Whether the gesture handles only touch events"), + FALSE, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); /** * GtkGestureSingle:exclusive: @@ -271,13 +271,12 @@ gtk_gesture_single_class_init (GtkGestureSingleClass *klass) * * Since: 3.14 */ - g_object_class_install_property (object_class, - PROP_EXCLUSIVE, - g_param_spec_boolean ("exclusive", - P_("Whether the gesture is exclusive"), - P_("Whether the gesture is exclusive"), - FALSE, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); + properties[PROP_EXCLUSIVE] = + g_param_spec_boolean ("exclusive", + P_("Whether the gesture is exclusive"), + P_("Whether the gesture is exclusive"), + FALSE, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); /** * GtkGestureSingle:button: @@ -286,13 +285,15 @@ gtk_gesture_single_class_init (GtkGestureSingleClass *klass) * * Since: 3.14 */ - g_object_class_install_property (object_class, - PROP_BUTTON, - g_param_spec_uint ("button", - P_("Button number"), - P_("Button number to listen to"), - 0, G_MAXUINT, GDK_BUTTON_PRIMARY, - GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY)); + properties[PROP_BUTTON] = + g_param_spec_uint ("button", + P_("Button number"), + P_("Button number to listen to"), + 0, G_MAXUINT, + GDK_BUTTON_PRIMARY, + GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); + + g_object_class_install_properties (object_class, LAST_PROP, properties); } static void @@ -371,7 +372,7 @@ gtk_gesture_single_set_touch_only (GtkGestureSingle *gesture, priv->touch_only = touch_only; _gtk_gesture_single_update_evmask (gesture); - g_object_notify (G_OBJECT (gesture), "touch-only"); + g_object_notify_by_pspec (G_OBJECT (gesture), properties[PROP_TOUCH_ONLY]); } /** @@ -425,7 +426,7 @@ gtk_gesture_single_set_exclusive (GtkGestureSingle *gesture, priv->exclusive = exclusive; _gtk_gesture_single_update_evmask (gesture); - g_object_notify (G_OBJECT (gesture), "exclusive"); + g_object_notify_by_pspec (G_OBJECT (gesture), properties[PROP_EXCLUSIVE]); } /** @@ -476,7 +477,7 @@ gtk_gesture_single_set_button (GtkGestureSingle *gesture, return; priv->button = button; - g_object_notify (G_OBJECT (gesture), "button"); + g_object_notify_by_pspec (G_OBJECT (gesture), properties[PROP_BUTTON]); } /** |