diff --git a/src/compositor.c b/src/compositor.c index 8cf66bbe..df39274c 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -1798,6 +1798,8 @@ notify_modifiers(struct wl_seat *wl_seat, uint32_t serial) seat->modifier_state |= MODIFIER_ALT; if (mods_lookup & (1 << seat->xkb_info.super_mod)) seat->modifier_state |= MODIFIER_SUPER; + if (mods_lookup & (1 << seat->xkb_info.shift_mod)) + seat->modifier_state |= MODIFIER_SHIFT; /* Finally, notify the compositor that LEDs have changed. */ if (xkb_state_led_index_is_active(seat->xkb_state.state, diff --git a/src/compositor.h b/src/compositor.h index a144e5f0..0d49dec7 100644 --- a/src/compositor.h +++ b/src/compositor.h @@ -52,6 +52,7 @@ enum weston_keyboard_modifier { MODIFIER_CTRL = (1 << 0), MODIFIER_ALT = (1 << 1), MODIFIER_SUPER = (1 << 2), + MODIFIER_SHIFT = (1 << 3), }; enum weston_led { diff --git a/src/shell.c b/src/shell.c index 2e1e22a3..22229701 100644 --- a/src/shell.c +++ b/src/shell.c @@ -3248,7 +3248,7 @@ shell_add_bindings(struct weston_compositor *ec, struct desktop_shell *shell) ec); weston_compositor_add_key_binding(ec, KEY_BRIGHTNESSUP, 0, backlight_binding, ec); - weston_compositor_add_key_binding(ec, KEY_SPACE, mod, + weston_compositor_add_key_binding(ec, KEY_SPACE, mod | MODIFIER_SHIFT, debug_repaint_binding, shell); weston_compositor_add_key_binding(ec, KEY_K, mod, force_kill_binding, shell);