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)
committerSimon McVittie <smcv@debian.org>
Tue, 3 Apr 2018 07:41:09 +0000 (08:41 +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.

Origin: upstream, 3.22.30, commit:4f78abddfc8a815a7e02f5347d5326412190f66f
Bug: https://gitlab.gnome.org/GNOME/gtk/issues/114
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893696

Gbp-Pq: Name 0010-imwayland-Avoid-TOGGLE_INPUT_PANEL-requests-if-there.patch

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 &&