app/internal/xkb: translate physical "Backtab" keys to Shift-Tab

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2019-11-09 15:55:03 +01:00
parent dca25a7708
commit c8d01d99cc
+5
View File
@@ -124,6 +124,11 @@ func (x *Context) DispatchKey(keyCode uint32) (events []event.Event) {
sym := C.xkb_state_key_get_one_sym(x.state, C.xkb_keycode_t(keyCode))
if n, ok := convertKeysym(sym); ok {
cmd := key.Event{Name: n}
// Ensure that a physical backtab key is translated to
// Shift-Tab.
if sym == C.XKB_KEY_ISO_Left_Tab {
cmd.Modifiers |= key.ModShift
}
if C.xkb_state_mod_name_is_active(x.state, (*C.char)(unsafe.Pointer(&_XKB_MOD_NAME_CTRL[0])), C.XKB_STATE_MODS_EFFECTIVE) == 1 {
cmd.Modifiers |= key.ModCtrl
}