030_xim-modules.patch: stolen from upstream git. Fix the behavior of

XIM modules. Closes: #633720.
This commit is contained in:
Josselin Mouette
2011-09-04 13:37:25 +00:00
parent 691452571b
commit 0fb0c2a83b
3 changed files with 44 additions and 0 deletions

7
debian/changelog vendored
View File

@ -1,3 +1,10 @@
gtk+3.0 (3.0.12-3) UNRELEASED; urgency=low
* 030_xim-modules.patch: stolen from upstream git. Fix the behavior of
XIM modules. Closes: #633720.
-- Josselin Mouette <joss@debian.org> Sun, 04 Sep 2011 15:36:14 +0200
gtk+3.0 (3.0.12-2) unstable; urgency=low
[ Josselin Mouette ]

36
debian/patches/030_xim-modules.patch vendored Normal file
View File

@ -0,0 +1,36 @@
From d3274e8e0619bad02a7fa31874943707dc209fc8 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Sat, 02 Apr 2011 09:46:42 +0000
Subject: xi2: Handle XIM modules that replace events
Fixes Bug 645993 - XIM has wierd behaviors. Some XIM modules
filter every key event, possibly replacing it with their own
one. These events usually have serial=0, so make
GdkDeviceManagerXI2 also listen on these.
---
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index 64d0f59..1953b48 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -938,13 +938,18 @@ gdk_x11_device_manager_xi2_translate_core_event (GdkEventTranslator *translator,
gboolean keyboard = FALSE;
GdkDevice *device;
- if (xevent->type == KeyPress && xevent->xkey.keycode == 0)
+ if ((xevent->type == KeyPress || xevent->type == KeyRelease) &&
+ (xevent->xkey.keycode == 0 || xevent->xkey.serial == 0))
{
/* The X input methods (when triggered via XFilterEvent)
* generate a core key press event with keycode 0 to signal the
* end of a key sequence. We use the core translate_event
* implementation to translate this event.
*
+ * Other less educated IM modules like to filter every keypress,
+ * only to have these replaced by their own homegrown events,
+ * these events oddly have serial=0, so we try to catch these.
+ *
* This is just a bandaid fix to keep xim working with a single
* keyboard until XFilterEvent learns about XI2.
*/
--
cgit v0.9.0.2

View File

@ -3,6 +3,7 @@
003_gdk.pc_privates.patch
015_default-fallback-icon-theme.patch
022_disable-viqr-im-for-vi-locale.patch
030_xim-modules.patch
041_ia32-libs.patch
042_treeview_single-focus.patch
043_notebook_scroll.patch