From 8c108490941d1000af5d8fc6d2c99782c5639369 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 26 Dec 2017 20:04:07 -0500 Subject: [PATCH] Avoid excess notification for GdkEventControllerScroll::flags We have a test that checks this, and it is the right thing to do. --- gtk/gtkeventcontrollerscroll.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gtk/gtkeventcontrollerscroll.c b/gtk/gtkeventcontrollerscroll.c index 6bd35adb5c..7b3fe2b910 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); @@ -373,7 +374,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: @@ -488,11 +489,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]); } /**