[mutter/f20] Include a fix for on-screen keyboards

Matthias Clasen mclasen at fedoraproject.org
Tue Dec 10 20:48:23 UTC 2013


commit c37674988515eedab9138813ed7400d26882d103
Author: Matthias Clasen <mclasen at redhat.com>
Date:   Tue Dec 10 15:48:13 2013 -0500

    Include a fix for on-screen keyboards

 ...-t-focus-the-no-focus-window-when-sending.patch |   55 ++++++++++++++++++++
 mutter.spec                                        |    7 ++-
 2 files changed, 61 insertions(+), 1 deletions(-)
---
diff --git a/0001-display-Don-t-focus-the-no-focus-window-when-sending.patch b/0001-display-Don-t-focus-the-no-focus-window-when-sending.patch
new file mode 100644
index 0000000..a3b1115
--- /dev/null
+++ b/0001-display-Don-t-focus-the-no-focus-window-when-sending.patch
@@ -0,0 +1,55 @@
+From 844f4e9348e29be52ded19d83fdbd1e5e9ce5529 Mon Sep 17 00:00:00 2001
+From: "Jasper St. Pierre" <jstpierre at mecheye.net>
+Date: Wed, 16 Oct 2013 22:33:47 -0400
+Subject: [PATCH 1/3] display: Don't focus the no-focus-window when sending
+ WM_TAKE_FOCUS to a globally active window
+
+Clients like on-screen keyboards try not to take focus when the user clicks
+on their window by setting the Input hint to false. However, due to GTK+ and
+GDK bugs, the public API for setting the Input hint to false don't remove
+WM_TAKE_FOCUS from WM_PROTOCOLS, unintentionally putting them into Globally
+Active mode.
+
+These clients also expect that since they don't want to take focus, they want
+the focus to remain on the existing window. In this case, for clients like
+on-screen keyboards, it's so they can send synthesized keyboard events to the
+focused window.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=710296
+---
+ src/core/display.c | 19 -------------------
+ 1 file changed, 19 deletions(-)
+
+diff --git a/src/core/display.c b/src/core/display.c
+index 722fddd..70c5e2b 100644
+--- a/src/core/display.c
++++ b/src/core/display.c
+@@ -5808,25 +5808,6 @@ meta_display_request_take_focus (MetaDisplay *display,
+   meta_topic (META_DEBUG_FOCUS, "WM_TAKE_FOCUS(%s, %u)\n",
+               window->desc, timestamp);
+ 
+-  if (window != display->focus_window)
+-    {
+-      /* The "Globally Active Input" window case, where the window
+-       * doesn't want us to call XSetInputFocus on it, but does
+-       * want us to send a WM_TAKE_FOCUS.
+-       *
+-       * We can't just set display->focus_window to @window, since we
+-       * we don't know when (or even if) the window will actually take
+-       * focus, so we could end up being wrong for arbitrarily long.
+-       * But we also can't leave it set to the current window, or else
+-       * bug #597352 would come back. So we focus the no_focus_window
+-       * now (and set display->focus_window to that), send the
+-       * WM_TAKE_FOCUS, and then just forget about @window
+-       * until/unless we get a FocusIn.
+-       */
+-      meta_display_focus_the_no_focus_window (display,
+-                                              window->screen,
+-                                              timestamp);
+-    }
+   meta_window_send_icccm_message (window,
+                                   display->atom_WM_TAKE_FOCUS,
+                                   timestamp);
+-- 
+1.8.4.2
+
diff --git a/mutter.spec b/mutter.spec
index 7d95f42..71f44d6 100644
--- a/mutter.spec
+++ b/mutter.spec
@@ -1,6 +1,6 @@
 Name:          mutter
 Version:       3.10.2
-Release:       3%{?dist}
+Release:       4%{?dist}
 Summary:       Window and compositing manager based on Clutter
 
 Group:         User Interface/Desktops
@@ -11,6 +11,7 @@ Source0:       http://download.gnome.org/sources/%{name}/3.10/%{name}-%{version}
 
 Patch1: 0001-xrandr-use-hotplug_mode_update-property.patch
 Patch2: 0001-MetaWindowGroup-fix-paint-volume.patch
+Patch3: 0001-display-Don-t-focus-the-no-focus-window-when-sending.patch
 
 BuildRequires: clutter-devel >= 1.13.5
 BuildRequires: pango-devel
@@ -70,6 +71,7 @@ utilities for testing Metacity/Mutter themes.
 
 %patch1 -p1 -b .hotplug-mode-update
 %patch2 -p1
+%patch3 -p1 
 
 %build
 (if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; fi;
@@ -133,6 +135,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
 %exclude %{_datadir}/gtk-doc
 
 %changelog
+* Tue Dec 10 2013 Matthias Clasen <mclasen at redhat.com> - 3.10.2-4
+- Include a fix for on-screen keyboards
+
 * Mon Dec  9 2013 Matthias Clasen <mclasen at redhat.com> - 3.10.2-3
 - Include a fix for lingering shadows
  


More information about the scm-commits mailing list