Blame SOURCES/ibus-qt-HEAD.patch

dea188
From b5bd6307c83cf900f9f8c9a5226a78bcb825e332 Mon Sep 17 00:00:00 2001
dea188
From: fujiwarat <takao.fujiwara1@gmail.com>
dea188
Date: Thu, 21 Mar 2013 11:27:08 +0900
dea188
Subject: [PATCH] Enable dead_belowdot with de layout.
dea188
dea188
AltGr + j returns dead_belowdot in de layout.
dea188
E.g. AltGr + j, s returns U+1E63 with de.
dea188
XLookupString can get dead_belowdot but the return value is 0.
dea188
I think XLookupString does not failed with return value 0.
dea188
dea188
BUG=RH#921164
dea188
dea188
Review URL: https://codereview.appspot.com/7812045
dea188
---
dea188
 qtim/ibus-input-context.cpp | 10 +++++++---
dea188
 1 file changed, 7 insertions(+), 3 deletions(-)
dea188
dea188
diff --git a/qtim/ibus-input-context.cpp b/qtim/ibus-input-context.cpp
dea188
index 8c00a10..0c9e547 100644
dea188
--- a/qtim/ibus-input-context.cpp
dea188
+++ b/qtim/ibus-input-context.cpp
dea188
@@ -248,9 +248,13 @@ translate_x_key_event (XEvent *xevent, uint *keyval, uint *keycode, uint *state)
dea188
         *state |= IBus::ReleaseMask;
dea188
 
dea188
     char key_str[64];
dea188
-    if (XLookupString (&xevent->xkey, key_str, sizeof (key_str), (KeySym *)keyval, 0) <= 0) {
dea188
-        *keyval = (quint32) XLookupKeysym (&xevent->xkey, 0);
dea188
-    }
dea188
+    /* Follow gtkxim module.
dea188
+     * https://git.gnome.org/browse/gtk+/tree/modules/input/gtkimcontextxim.c#n736
dea188
+     * I think XLookupString can get right keyval even if the return value
dea188
+     * is 0 but key_str might not be a string.
dea188
+     * And XLookupString won't return the negative value in my test. */
dea188
+    XLookupString (&xevent->xkey, key_str, sizeof (key_str),
dea188
+                   (KeySym *)keyval, 0);
dea188
 
dea188
     return true;
dea188
 
dea188
-- 
dea188
1.8.0
dea188