diff options
author | Matthias Clasen <mclasen@redhat.com> | 2017-12-26 20:04:07 -0500 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-07-16 15:43:43 +0200 |
commit | e7af3410cfc80375e2aafdb26c6291779473323d (patch) | |
tree | 5b37fd10b1f6e776d21e1c2bdf65d773a232750b | |
parent | 84d3bfb6fd13959b44ee8d6947d91e03f90fc8e6 (diff) | |
download | gtk+-e7af3410cfc80375e2aafdb26c6291779473323d.tar.gz |
Avoid excess notification for GdkEventControllerScroll::flags
We have a test that checks this, and it is the right thing to do.
-rw-r--r-- | gtk/gtkeventcontrollerscroll.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gtk/gtkeventcontrollerscroll.c b/gtk/gtkeventcontrollerscroll.c index 1edf6cc4ea..1738e0173f 100644 --- a/gtk/gtkeventcontrollerscroll.c +++ b/gtk/gtkeventcontrollerscroll.c @@ -66,6 +66,7 @@ #include "gtkeventcontrollerscroll.h" #include "gtktypebuiltins.h" #include "gtkmarshalers.h" +#include "gtkprivate.h" #define SCROLL_CAPTURE_THRESHOLD_MS 150 @@ -210,7 +211,7 @@ gtk_event_controller_scroll_set_property (GObject *object, switch (prop_id) { case PROP_FLAGS: - scroll->flags = g_value_get_flags (value); + gtk_event_controller_scroll_set_flags (scroll, g_value_get_flags (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -372,7 +373,7 @@ gtk_event_controller_scroll_class_init (GtkEventControllerScrollClass *klass) P_("Flags"), GTK_TYPE_EVENT_CONTROLLER_SCROLL_FLAGS, GTK_EVENT_CONTROLLER_SCROLL_NONE, - G_PARAM_READWRITE); + GTK_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY); /** * GtkEventControllerScroll::scroll-begin: @@ -487,11 +488,11 @@ gtk_event_controller_scroll_set_flags (GtkEventControllerScroll *scroll, { g_return_if_fail (GTK_IS_EVENT_CONTROLLER_SCROLL (scroll)); - if (scroll->flags != flags) - { - scroll->flags = flags; - g_object_notify (G_OBJECT (scroll), "flags"); - } + if (scroll->flags == flags) + return; + + scroll->flags = flags; + g_object_notify_by_pspec (G_OBJECT (scroll), pspecs[PROP_FLAGS]); } /** |