aboutsummaryrefslogtreecommitdiffstats
path: root/swaylock/password.c
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 /swaylock/password.c
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 'swaylock/password.c')
-rw-r--r--swaylock/password.c8
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);