Compare commits

...

1 Commits

Author SHA1 Message Date
Matthias Clasen
40b34c76e6 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
2019-05-12 19:30:56 +00:00

View File

@@ -47,6 +47,7 @@
#include "gtkgestureprivate.h" #include "gtkgestureprivate.h"
#include "gtkgesturesingle.h" #include "gtkgesturesingle.h"
#include "gtkgestureswipe.h" #include "gtkgestureswipe.h"
#include "gtkeventcontrollerkey.h"
#include "gtkintl.h" #include "gtkintl.h"
#include "gtklayoutmanagerprivate.h" #include "gtklayoutmanagerprivate.h"
#include "gtkmain.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 * to collaborate with anything else. Break early if any such event
* controller handled the event. * controller handled the event.
*/ */
if (handled && !GTK_IS_GESTURE (controller)) if (handled &&
!GTK_IS_GESTURE (controller) &&
!GTK_IS_EVENT_CONTROLLER_KEY (controller))
break; break;
} }