diff --git a/debian/changelog b/debian/changelog index 5105ae97f1..8975f93ce0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Sun, 04 Sep 2011 15:36:14 +0200 + gtk+3.0 (3.0.12-2) unstable; urgency=low [ Josselin Mouette ] diff --git a/debian/patches/030_xim-modules.patch b/debian/patches/030_xim-modules.patch new file mode 100644 index 0000000000..4f8206ad61 --- /dev/null +++ b/debian/patches/030_xim-modules.patch @@ -0,0 +1,36 @@ +From d3274e8e0619bad02a7fa31874943707dc209fc8 Mon Sep 17 00:00:00 2001 +From: Carlos Garnacho +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 diff --git a/debian/patches/series b/debian/patches/series index e6c49cb333..4af0e0e912 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -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