summaryrefslogtreecommitdiff
path: root/include/xkbsrv.h
diff options
context:
space:
mode:
authorMihail Konev <k.mvc@ya.ru>2017-01-04 07:08:51 +0500
committerPeter Hutterer <peter.hutterer@who-t.net>2017-01-04 13:23:31 +1000
commit9d32b71c93cf6187e9320c99ae857e34a51b7102 (patch)
tree004ab764b8afe1b9b3849d0ef1892518e02f5f01 /include/xkbsrv.h
parent29a4f3db60fdeaef7bca3aa2746bb43a1850fddd (diff)
xkb: Match key releases with an overlaid press
Testcase: In ~/.xbindkeysrc: "xterm &" XF86LaunchA In ~/ov.xkb: xkb_keymap { xkb_keycodes { include "evdev" }; xkb_types { include "complete" }; xkb_compat { include "complete" interpret Overlay1_Enable+AnyOfOrNone(all) { action= SetControls(controls=Overlay1); }; }; xkb_symbols { include "pc+inet(evdev)+us" key <INS> { [ Overlay1_Enable ] }; key <AE01> { overlay1 = <AE02> }; // Insert+1 => 2 key <TLDE> { overlay1 = <I128> }; // Insert+~ => XF86LaunchA }; xkb_geometry { include "pc(pc104)" }; }; Apply this layout: 'xkbcomp ~/ov.xkb $DISPLAY'. Run "xbindkeys -n -v" In the exact order: - press Insert - press Tilde - release Insert - wait - release Tilde Keyboard input in the new terminal window(s) would be locked until another Insert+Tilde . Reported-by: Mariusz Mazur <mariusz.g.mazur@gmail.com> Signed-off-by: Mihail Konev <k.mvc@ya.ru> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'include/xkbsrv.h')
-rw-r--r--include/xkbsrv.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
index 6e4ad44d4..2870f3987 100644
--- a/include/xkbsrv.h
+++ b/include/xkbsrv.h
@@ -195,6 +195,8 @@ typedef struct _XkbSrvInfo {
XkbFilterPtr filters;
XkbSrvCheckRepeatPtr checkRepeat;
+
+ char overlay_perkey_state[256/8]; /* bitfield */
} XkbSrvInfoRec, *XkbSrvInfoPtr;
#define XkbSLI_IsDefault (1L<<0)