summaryrefslogtreecommitdiff
path: root/src/lib/ecore_wl2/ecore_wl2_input.c
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-05-17 17:51:08 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-05-19 13:17:31 -0400
commit771d8803dddfda2bd161821c217e7e8f3d56fd47 (patch)
tree653d655ecb3dc5d86a8efd9c84c98d2125cc8b74 /src/lib/ecore_wl2/ecore_wl2_input.c
parent2b2367b6ff228ec8b4aa5d25fb7757ee1fa081e8 (diff)
ecore-wl2: block key->string translation when appropriate
copied from libX11. I don't understand what's going on here but this fixes input bugs such as, e.g., holding ctrl and pressing shift affecting cursor position in terminology @fix
Diffstat (limited to 'src/lib/ecore_wl2/ecore_wl2_input.c')
-rw-r--r--src/lib/ecore_wl2/ecore_wl2_input.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c
index 790ef8ae86..2853f3b140 100644
--- a/src/lib/ecore_wl2/ecore_wl2_input.c
+++ b/src/lib/ecore_wl2/ecore_wl2_input.c
@@ -493,6 +493,19 @@ in this Software without prior written authorization from The Open Group.
493 unsigned char c; 493 unsigned char c;
494 494
495 hbytes = (keysym >> 8); 495 hbytes = (keysym >> 8);
496 if (!(bytes &&
497 ((hbytes == 0) ||
498 ((hbytes == 0xFF) &&
499 (((keysym >= XKB_KEY_BackSpace) && (keysym <= XKB_KEY_Clear)) ||
500 (keysym == XKB_KEY_Return) ||
501 (keysym == XKB_KEY_Escape) ||
502 (keysym == XKB_KEY_KP_Space) ||
503 (keysym == XKB_KEY_KP_Tab) ||
504 (keysym == XKB_KEY_KP_Enter) ||
505 ((keysym >= XKB_KEY_KP_Multiply) && (keysym <= XKB_KEY_KP_9)) ||
506 (keysym == XKB_KEY_KP_Equal) ||
507 (keysym == XKB_KEY_Delete))))))
508 return 0;
496 509
497 if (keysym == XKB_KEY_KP_Space) 510 if (keysym == XKB_KEY_KP_Space)
498 c = (XKB_KEY_space & 0x7F); 511 c = (XKB_KEY_space & 0x7F);