Commit: b80c07321ba9611b19557d245c67f6933b80ec95
Author: Bastien Montagne
Date: Tue Feb 2 21:27:33 2016 +0100
Branches: master
https://developer.blender.org/rBb80c07321ba9611b19557d245c67f6933b80ec95
Fix T47300: SHIFT TAB, CTRL SHIFT TAB shortcuts does not toggle snap, snap mode
on off anymore.
Regression from rB12c71508c2d7.
Now, we systematically first try keycode from `XLookupKeysym()`, and only fall
back to
the one from `XLookupString()` if it failed to convert to a valid gkey.
===================================================================
M intern/ghost/intern/GHOST_SystemX11.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp
b/intern/ghost/intern/GHOST_SystemX11.cpp
index f90ff81..beb8ab5 100644
--- a/intern/ghost/intern/GHOST_SystemX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemX11.cpp
@@ -765,7 +765,8 @@ GHOST_SystemX11::processEvent(XEvent *xe)
case KeyRelease:
{
XKeyEvent *xke = &(xe->xkey);
- KeySym key_sym = 0;
+ KeySym key_sym;
+ KeySym key_sym_str;
char ascii;
#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
/* utf8_array[] is initial buffer used for
Xutf8LookupString().
@@ -810,18 +811,20 @@ GHOST_SystemX11::processEvent(XEvent *xe)
if ((xke->keycode >= 10 && xke->keycode < 20)) {
key_sym = XLookupKeysym(xke, ShiftMask);
if (!((key_sym >= XK_0) && (key_sym <= XK_9))) {
- key_sym = XLookupKeysym(xke, 0);
- }
- if (!((key_sym >= XK_0) && (key_sym <= XK_9))) {
- key_sym = 0; /* Get current-keymap valid key_sym. */
+ key_sym = XLookupKeysym(xke, 0);
}
}
+ else {
+ key_sym = XLookupKeysym(xke, 0);
+ }
- if (!XLookupString(xke, &ascii, 1, (key_sym == 0) ? &key_sym :
NULL, NULL)) {
+ if (!XLookupString(xke, &ascii, 1, &key_sym_str, NULL)) {
ascii = '\0';
}
- gkey = convertXKey(key_sym);
+ if ((gkey = convertXKey(key_sym)) == GHOST_kKeyUnknown)
{
+ gkey = convertXKey(key_sym_str);
+ }
#else
/* In keyboards like latin ones,
* numbers needs a 'Shift' to be accessed but key_sym
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs