imwayland: Avoid TOGGLE_INPUT_PANEL requests if there's no focus
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 20 Mar 2018 14:17:31 +0000 (15:17 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Tue, 20 Mar 2018 14:56:53 +0000 (15:56 +0100)
Fixes two things: 1) As GTK+ can be coerced into using the wayland IM
module despite the compositor not implementing the interface, all paths
not checking for global state before sending requests are prone to
crashes, this one fell hit this pitfall.

And 2) ensures the tap gesture only triggers TOGGLE_INPUT_PANEL if the
widget IM is focused. This is a possibility on eg. WebKit pages, where
its IM is only focused as long as a form element in the page is focused.
Tapping elsewhere shouldn't toggle the OSK.

https://gitlab.gnome.org/GNOME/gtk/issues/114

Closes: #114
modules/input/imwayland.c

index 64605a11247af02085e72155bc7c8c3d152ead89..30d253665bcc76abff728eeb66a1eb92e8a642ba 100644 (file)
@@ -420,6 +420,9 @@ released_cb (GtkGestureMultiPress *gesture,
 {
   GtkInputHints hints;
 
+  if (!global->current)
+    return;
+
   g_object_get (context, "input-hints", &hints, NULL);
 
   if (n_press == 1 &&