summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar Dominique Martinet <asmadeus@codewreck.org>2018-06-08 21:58:01 +0900
committerLibravatar Dominique Martinet <asmadeus@codewreck.org>2018-06-08 22:42:15 +0900
commitc78ce0770a8c75d63853c6c85f789b68f56ee3ed (patch)
tree578c0249b9ecf8eb8579b828862db3107d1a22bd /include
parentMerge pull request #2119 from martinetd/gcc-strtruncation (diff)
downloadsway-c78ce0770a8c75d63853c6c85f789b68f56ee3ed.tar.gz
sway-c78ce0770a8c75d63853c6c85f789b68f56ee3ed.tar.zst
sway-c78ce0770a8c75d63853c6c85f789b68f56ee3ed.zip
swaylock: implement ^U to clear buffer
The whole state->xcb.modifiers thing didn't work at all (always 0) The xkb doc says "[xkb_state_serialize_mods] should not be used in regular clients; please use the xkb_state_mod_*_is_active API instead" so here it is
Diffstat (limited to 'include')
-rw-r--r--include/swaylock/seat.h26
1 files changed, 1 insertions, 25 deletions
diff --git a/include/swaylock/seat.h b/include/swaylock/seat.h
index 180ea7a0..4bcf40c0 100644
--- a/include/swaylock/seat.h
+++ b/include/swaylock/seat.h
@@ -2,36 +2,12 @@
2#define _SWAYLOCK_SEAT_H 2#define _SWAYLOCK_SEAT_H
3#include <xkbcommon/xkbcommon.h> 3#include <xkbcommon/xkbcommon.h>
4 4
5enum mod_bit {
6 MOD_SHIFT = 1<<0,
7 MOD_CAPS = 1<<1,
8 MOD_CTRL = 1<<2,
9 MOD_ALT = 1<<3,
10 MOD_MOD2 = 1<<4,
11 MOD_MOD3 = 1<<5,
12 MOD_LOGO = 1<<6,
13 MOD_MOD5 = 1<<7,
14};
15
16enum mask {
17 MASK_SHIFT,
18 MASK_CAPS,
19 MASK_CTRL,
20 MASK_ALT,
21 MASK_MOD2,
22 MASK_MOD3,
23 MASK_LOGO,
24 MASK_MOD5,
25 MASK_LAST
26};
27
28struct swaylock_xkb { 5struct swaylock_xkb {
29 uint32_t modifiers;
30 bool caps_lock; 6 bool caps_lock;
7 bool control;
31 struct xkb_state *state; 8 struct xkb_state *state;
32 struct xkb_context *context; 9 struct xkb_context *context;
33 struct xkb_keymap *keymap; 10 struct xkb_keymap *keymap;
34 xkb_mod_mask_t masks[MASK_LAST];
35}; 11};
36 12
37extern const struct wl_seat_listener seat_listener; 13extern const struct wl_seat_listener seat_listener;