summaryrefslogtreecommitdiff
path: root/src/lib/ecore_wl2
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-08-18 15:24:51 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-08-18 15:24:37 -0400
commitdc073c1ea343e626e3a3a809245308034ed86f5e (patch)
treecab35cb19c0b197c458ce158148ce791706430e1 /src/lib/ecore_wl2
parentdae39821d9b4fa463861a8a4cada4afbf8004834 (diff)
wayland: fix num/caps lock handling in events
locks are not the same as modifiers, and the corresponding event flag must be set based on whichever value(s) are set instead of yolo mixing and matching @fix ref T5737
Diffstat (limited to 'src/lib/ecore_wl2')
-rw-r--r--src/lib/ecore_wl2/ecore_wl2_input.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c
index da6fe7cd59..d20849eda2 100644
--- a/src/lib/ecore_wl2/ecore_wl2_input.c
+++ b/src/lib/ecore_wl2/ecore_wl2_input.c
@@ -1152,14 +1152,23 @@ _keyboard_cb_modifiers(void *data, struct wl_keyboard *keyboard EINA_UNUSED, uns
1152 input->keyboard.modifiers |= ECORE_EVENT_MODIFIER_SHIFT; 1152 input->keyboard.modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
1153 if (mask & input->xkb.win_mask) 1153 if (mask & input->xkb.win_mask)
1154 input->keyboard.modifiers |= ECORE_EVENT_MODIFIER_WIN; 1154 input->keyboard.modifiers |= ECORE_EVENT_MODIFIER_WIN;
1155 if (mask & input->xkb.altgr_mask)
1156 input->keyboard.modifiers |= ECORE_EVENT_MODIFIER_ALTGR;
1157 if (mask & input->xkb.scroll_mask)
1158 input->keyboard.modifiers |= ECORE_EVENT_MODIFIER_SCROLL;
1159 if (mask & input->xkb.num_mask)
1160 input->keyboard.modifiers |= ECORE_EVENT_MODIFIER_NUM;
1161 if (mask & input->xkb.caps_mask)
1162 input->keyboard.modifiers |= ECORE_EVENT_MODIFIER_CAPS;
1163
1164
1165 mask = xkb_state_serialize_mods(input->xkb.state, XKB_STATE_MODS_LOCKED);
1155 if (mask & input->xkb.scroll_mask) 1166 if (mask & input->xkb.scroll_mask)
1156 input->keyboard.modifiers |= ECORE_EVENT_LOCK_SCROLL; 1167 input->keyboard.modifiers |= ECORE_EVENT_LOCK_SCROLL;
1157 if (mask & input->xkb.num_mask) 1168 if (mask & input->xkb.num_mask)
1158 input->keyboard.modifiers |= ECORE_EVENT_LOCK_NUM; 1169 input->keyboard.modifiers |= ECORE_EVENT_LOCK_NUM;
1159 if (mask & input->xkb.caps_mask) 1170 if (mask & input->xkb.caps_mask)
1160 input->keyboard.modifiers |= ECORE_EVENT_LOCK_CAPS; 1171 input->keyboard.modifiers |= ECORE_EVENT_LOCK_CAPS;
1161 if (mask & input->xkb.altgr_mask)
1162 input->keyboard.modifiers |= ECORE_EVENT_MODIFIER_ALTGR;
1163} 1172}
1164 1173
1165static void 1174static void