diff options
author | Dominique Martinet <asmadeus@codewreck.org> | 2018-06-08 21:58:01 +0900 |
---|---|---|
committer | Dominique Martinet <asmadeus@codewreck.org> | 2018-06-08 22:42:15 +0900 |
commit | c78ce0770a8c75d63853c6c85f789b68f56ee3ed (patch) | |
tree | 578c0249b9ecf8eb8579b828862db3107d1a22bd /swaylock/password.c | |
parent | Merge pull request #2119 from martinetd/gcc-strtruncation (diff) | |
download | sway-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 'swaylock/password.c')
-rw-r--r-- | swaylock/password.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/swaylock/password.c b/swaylock/password.c index 6d493309..bb32286e 100644 --- a/swaylock/password.c +++ b/swaylock/password.c | |||
@@ -139,6 +139,14 @@ void swaylock_handle_key(struct swaylock_state *state, | |||
139 | state->auth_state = AUTH_STATE_INPUT_NOP; | 139 | state->auth_state = AUTH_STATE_INPUT_NOP; |
140 | damage_state(state); | 140 | damage_state(state); |
141 | break; | 141 | break; |
142 | case XKB_KEY_u: | ||
143 | if (state->xkb.control) { | ||
144 | clear_password_buffer(&state->password); | ||
145 | state->auth_state = AUTH_STATE_CLEAR; | ||
146 | damage_state(state); | ||
147 | break; | ||
148 | } | ||
149 | // fallthrough | ||
142 | default: | 150 | default: |
143 | if (codepoint) { | 151 | if (codepoint) { |
144 | append_ch(&state->password, codepoint); | 152 | append_ch(&state->password, codepoint); |