[gtk/key-controller-shortcut] widget: Treat key controllers like gestures



commit 40b34c76e6c08c2a340d516fb985838a8ea31940
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun May 12 19:30:56 2019 +0000

    widget: Treat key controllers like gestures
    
    For the purposes of cutting short event handling,
    treat key controllers like gestures. It is fairly
    common to have multiple key controllers on a widget,
    and the event handling can inadvertently cut short
    e.g. by modifier key releases that return TRUE
    from handle_event.
    
    Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1884

 gtk/gtkwidget.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index bbc5ada6f6..69de5ce583 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -47,6 +47,7 @@
 #include "gtkgestureprivate.h"
 #include "gtkgesturesingle.h"
 #include "gtkgestureswipe.h"
+#include "gtkeventcontrollerkey.h"
 #include "gtkintl.h"
 #include "gtklayoutmanagerprivate.h"
 #include "gtkmain.h"
@@ -5225,7 +5226,9 @@ gtk_widget_run_controllers (GtkWidget           *widget,
            * to collaborate with anything else. Break early if any such event
            * controller handled the event.
            */
-          if (handled && !GTK_IS_GESTURE (controller))
+          if (handled &&
+              !GTK_IS_GESTURE (controller) &&
+              !GTK_IS_EVENT_CONTROLLER_KEY (controller))
             break;
         }
 


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