diff options
| author | Zandr Martin <zandrmartin+git@gmail.com> | 2016-05-26 08:35:16 -0500 | 
|---|---|---|
| committer | Zandr Martin <zandrmartin+git@gmail.com> | 2016-05-26 08:35:16 -0500 | 
| commit | ac4213a136ef2783782143186d174f7e17dbd0cb (patch) | |
| tree | 819731e164a21da4d432d7769995b4c31f213456 | |
| parent | 508f481fbb0cc8d079da9038e1599eec2cbb874d (diff) | |
| download | sway-ac4213a136ef2783782143186d174f7e17dbd0cb.tar.xz | |
clear password buffer with ctrl-u in swaylock
also prevent screen redraws on modifier key presses
| -rw-r--r-- | swaylock/main.c | 34 | 
1 files changed, 34 insertions, 0 deletions
diff --git a/swaylock/main.c b/swaylock/main.c index 777bca09..96e3ec29 100644 --- a/swaylock/main.c +++ b/swaylock/main.c @@ -144,6 +144,40 @@ void notify_key(enum wl_keyboard_key_state state, xkb_keysym_t sym, uint32_t cod  				}  				break;  			} +		case XKB_KEY_Control_L: // fallthrough +		case XKB_KEY_Control_R: // fallthrough +		case XKB_KEY_Shift_L: // fallthrough +		case XKB_KEY_Shift_R: // fallthrough +		case XKB_KEY_Caps_Lock: // fallthrough +		case XKB_KEY_Shift_Lock: // fallthrough +		case XKB_KEY_Meta_L: // fallthrough +		case XKB_KEY_Meta_R: // fallthrough +		case XKB_KEY_Alt_L: // fallthrough +		case XKB_KEY_Alt_R: // fallthrough +		case XKB_KEY_Super_L: // fallthrough +		case XKB_KEY_Super_R: // fallthrough +		case XKB_KEY_Hyper_L: // fallthrough +		case XKB_KEY_Hyper_R: // fallthrough +			{ +				// don't draw screen on modifier keys +				break; +			} +		case XKB_KEY_u: // fallthrough +		case XKB_KEY_U: +			{ +				// clear password buffer on ctrl-u +				if (xkb_state_mod_name_is_active(registry->input->xkb.state, +						XKB_MOD_NAME_CTRL, XKB_STATE_MODS_EFFECTIVE) > 0) { +					render_data.auth_state = AUTH_STATE_BACKSPACE; +					redraw_screen = 1; + +					password_size = 1024; +					free(password); +					password = malloc(password_size); +					password[0] = '\0'; +					break; +				} +			}  		default:  			{  				render_data.auth_state = AUTH_STATE_INPUT;  | 
