aboutsummaryrefslogtreecommitdiff
path: root/swaylock/seat.c
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2019-01-05 23:45:38 -0500
committerGitHub <noreply@github.com>2019-01-05 23:45:38 -0500
commit728e5700dd59f392712d51866eff78ed5074d8ef (patch)
treef92e1eb17dd10ed186ce62619c4c7ce3b570ac32 /swaylock/seat.c
parent0cc56ebe940f3d74fb405ade7567e0c0e713fbc5 (diff)
parent76cd3f2642127c1b3a02e863d4d4bf9d5dc34d60 (diff)
Merge pull request #3367 from oscarwcl/swaylock-fix-capslock
swaylock: Fix caps lock not updating immediately
Diffstat (limited to 'swaylock/seat.c')
-rw-r--r--swaylock/seat.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/swaylock/seat.c b/swaylock/seat.c
index 7b72114f..f0b1385e 100644
--- a/swaylock/seat.c
+++ b/swaylock/seat.c
@@ -63,8 +63,12 @@ static void keyboard_modifiers(void *data, struct wl_keyboard *wl_keyboard,
struct swaylock_state *state = data;
xkb_state_update_mask(state->xkb.state,
mods_depressed, mods_latched, mods_locked, 0, 0, group);
- state->xkb.caps_lock = xkb_state_mod_name_is_active(state->xkb.state,
+ int caps_lock = xkb_state_mod_name_is_active(state->xkb.state,
XKB_MOD_NAME_CAPS, XKB_STATE_MODS_LOCKED);
+ if (caps_lock != state->xkb.caps_lock) {
+ state->xkb.caps_lock = caps_lock;
+ damage_state(state);
+ }
state->xkb.control = xkb_state_mod_name_is_active(state->xkb.state,
XKB_MOD_NAME_CTRL,
XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED);