atagen

monolith

public
Star0
Watch0

Commit 6c6429d21222

tarball

atagen <boss@atagen.co>2026-10-19 10:59 UTC

1 file changed+7-6
input: let a shortcut-inhibiting client keep Mod+mouse

Key binds already pass through while a client inhibits shortcuts, but start_drag still took Mod+click from a VM that had inhibited Super.
Modified file: crates/monolith/src/input.rs+7 additions−6 deletions
@@ -562,12 +562,13 @@ fn start_drag(state: &mut State, button: u32) -> bool {
562562 if button != BTN_LEFT && button != BTN_RIGHT {
563563 return false;
564564 }
565- let held = state
566- .input
567- .seat
568- .get_keyboard()
569- .map(|k| k.modifier_state())
570- .is_some_and(|m| crate::commands::held(&m).has(state.settings.config.general.mod_key));
565+ let held = !state.shortcuts_inhibited()
566+ && state
567+ .input
568+ .seat
569+ .get_keyboard()
570+ .map(|k| k.modifier_state())
571+ .is_some_and(|m| crate::commands::held(&m).has(state.settings.config.general.mod_key));
571572 if !held {
572573 let pos = state.input.pointer_pos;
573574 let cover = state.cover_under(pos).map(|c| c.2);