[gtk3] Revert a problematic focus handling change

Matthias Clasen mclasen at fedoraproject.org
Thu Dec 22 16:07:16 UTC 2011


commit 029087d60b6feb2bc5fd1f7d91c01cb553eeb1c7
Author: Matthias Clasen <mclasen at redhat.com>
Date:   Thu Dec 22 16:06:49 2011 +0000

    Revert a problematic focus handling change

 ...-x11-Avoid-spurious-focus-events-on-grabs.patch |   80 ++++++++++++++++++++
 gtk3.spec                                          |    9 ++-
 2 files changed, 88 insertions(+), 1 deletions(-)
---
diff --git a/0001-Revert-x11-Avoid-spurious-focus-events-on-grabs.patch b/0001-Revert-x11-Avoid-spurious-focus-events-on-grabs.patch
new file mode 100644
index 0000000..9989e42
--- /dev/null
+++ b/0001-Revert-x11-Avoid-spurious-focus-events-on-grabs.patch
@@ -0,0 +1,80 @@
+From 18406b7b04da088f8a3efe7cca5ac1647080dc0b Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at redhat.com>
+Date: Thu, 22 Dec 2011 15:44:28 +0000
+Subject: [PATCH] Revert "x11: Avoid spurious focus events on grabs"
+
+This reverts commit db4a6040afd3d1cabbb306037e811f37d62e2e76.
+
+This is causing bad focus confusion e.g. in gnome-terminal.
+---
+ gdk/x11/gdkdevicemanager-core-x11.c    |    5 -----
+ gdk/x11/gdkdevicemanager-xi2.c         |    1 -
+ gdk/x11/gdkdevicemanagerprivate-core.h |    3 ---
+ 3 files changed, 0 insertions(+), 9 deletions(-)
+
+diff --git a/gdk/x11/gdkdevicemanager-core-x11.c b/gdk/x11/gdkdevicemanager-core-x11.c
+index 503ad54..156ba8b 100644
+--- a/gdk/x11/gdkdevicemanager-core-x11.c
++++ b/gdk/x11/gdkdevicemanager-core-x11.c
+@@ -665,7 +665,6 @@ gdk_x11_device_manager_core_translate_event (GdkEventTranslator *translator,
+     case FocusIn:
+     case FocusOut:
+       _gdk_device_manager_core_handle_focus (window,
+-                                             xevent->xfocus.window,
+                                              device_manager->core_keyboard,
+                                              NULL,
+                                              xevent->type == FocusIn,
+@@ -796,7 +795,6 @@ _gdk_x11_event_translate_keyboard_string (GdkEventKey *event)
+  */
+ void
+ _gdk_device_manager_core_handle_focus (GdkWindow *window,
+-                                       Window     original,
+                                        GdkDevice *device,
+                                        GdkDevice *source_device,
+                                        gboolean   focus_in,
+@@ -821,9 +819,6 @@ _gdk_device_manager_core_handle_focus (GdkWindow *window,
+   if (!toplevel)
+     return;
+ 
+-  if (toplevel->focus_window == original)
+-    return;
+-
+   had_focus = HAS_FOCUS (toplevel);
+ 
+   switch (detail)
+diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
+index f9e4d11..273ca7d 100644
+--- a/gdk/x11/gdkdevicemanager-xi2.c
++++ b/gdk/x11/gdkdevicemanager-xi2.c
+@@ -1228,7 +1228,6 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
+                                              GUINT_TO_POINTER (xev->sourceid));
+ 
+         _gdk_device_manager_core_handle_focus (window,
+-                                               xev->event,
+                                                device,
+                                                source_device,
+                                                (ev->evtype == XI_FocusIn) ? TRUE : FALSE,
+diff --git a/gdk/x11/gdkdevicemanagerprivate-core.h b/gdk/x11/gdkdevicemanagerprivate-core.h
+index 54463bb..428b34f 100644
+--- a/gdk/x11/gdkdevicemanagerprivate-core.h
++++ b/gdk/x11/gdkdevicemanagerprivate-core.h
+@@ -20,8 +20,6 @@
+ #ifndef __GDK_DEVICE_MANAGER_PRIVATE_CORE_H__
+ #define __GDK_DEVICE_MANAGER_PRIVATE_CORE_H__
+ 
+-#include <X11/Xlib.h>
+-
+ #include "gdkx11devicemanager-core.h"
+ #include "gdkdevicemanagerprivate.h"
+ 
+@@ -40,7 +38,6 @@ struct _GdkX11DeviceManagerCoreClass
+ };
+ 
+ void            _gdk_device_manager_core_handle_focus           (GdkWindow   *window,
+-                                                                 Window       original,
+                                                                  GdkDevice   *device,
+                                                                  GdkDevice   *source_device,
+                                                                  gboolean     focus_in,
+-- 
+1.7.8
+
diff --git a/gtk3.spec b/gtk3.spec
index ab09db9..3a7e0da 100644
--- a/gtk3.spec
+++ b/gtk3.spec
@@ -9,7 +9,7 @@
 Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
 Name: gtk3
 Version: 3.3.6
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: LGPLv2+
 Group: System Environment/Libraries
 URL: http://www.gtk.org
@@ -17,6 +17,9 @@ URL: http://www.gtk.org
 Source: http://download.gnome.org/sources/gtk+/3.3/gtk+-%{version}.tar.xz
 Source1: im-cedilla.conf
 
+# upstream change
+Patch0: 0001-Revert-x11-Avoid-spurious-focus-events-on-grabs.patch
+
 BuildRequires: gnome-common autoconf automake intltool gettext
 BuildRequires: atk-devel >= %{atk_version}
 BuildRequires: glib2-devel >= %{glib2_version}
@@ -109,6 +112,7 @@ widget toolkit.
 
 %prep
 %setup -q -n gtk+-%{version}
+%patch0 -p1
 
 %build
 
@@ -233,6 +237,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache
 %{_datadir}/gtk-doc
 
 %changelog
+* Thu Dec 22 2011 Matthias Clasen <mclasen at redhat.com> - 3.3.6-2
+- Revert a problematic focus handling change
+
 * Mon Dec 19 2011 Matthias Clasen <mclasen at redhat.com> - 3.3.6-1
 - Update to 3.3.6
 


More information about the scm-commits mailing list