input: ignored caps_lock and num_lock during modifire matching
This commit is contained in:
parent
6b4d16aba7
commit
6bc7330989
2 changed files with 10 additions and 2 deletions
|
|
@ -150,6 +150,9 @@ impl Seat {
|
||||||
/// The closure is invoked when the user presses the last key of the modified keysym.
|
/// The closure is invoked when the user presses the last key of the modified keysym.
|
||||||
/// Note that the keysym is calculated without modifiers applied. To perform an action
|
/// Note that the keysym is calculated without modifiers applied. To perform an action
|
||||||
/// when `SHIFT+k` is pressed, use `SHIFT | SYM_k` not `SHIFT | SYM_K`.
|
/// when `SHIFT+k` is pressed, use `SHIFT | SYM_k` not `SHIFT | SYM_K`.
|
||||||
|
///
|
||||||
|
/// CapsLock and NumLock are ignored during modifier evaluation. Therefore, bindings
|
||||||
|
/// containing these modifiers will never be invoked.
|
||||||
pub fn bind<T: Into<ModifiedKeySym>, F: Fn() + 'static>(self, mod_sym: T, f: F) {
|
pub fn bind<T: Into<ModifiedKeySym>, F: Fn() + 'static>(self, mod_sym: T, f: F) {
|
||||||
get!().bind(self, mod_sym, f)
|
get!().bind(self, mod_sym, f)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,11 @@ use {
|
||||||
wire::WlDataOfferId,
|
wire::WlDataOfferId,
|
||||||
xkbcommon::{ModifierState, XKB_KEY_DOWN, XKB_KEY_UP},
|
xkbcommon::{ModifierState, XKB_KEY_DOWN, XKB_KEY_UP},
|
||||||
},
|
},
|
||||||
jay_config::keyboard::{mods::Modifiers, syms::KeySym, ModifiedKeySym},
|
jay_config::keyboard::{
|
||||||
|
mods::{Modifiers, CAPS, NUM},
|
||||||
|
syms::KeySym,
|
||||||
|
ModifiedKeySym,
|
||||||
|
},
|
||||||
smallvec::SmallVec,
|
smallvec::SmallVec,
|
||||||
std::rc::Rc,
|
std::rc::Rc,
|
||||||
};
|
};
|
||||||
|
|
@ -339,7 +343,8 @@ impl WlSeatGlobal {
|
||||||
let old_mods = kb_state.mods();
|
let old_mods = kb_state.mods();
|
||||||
let keysyms = kb_state.unmodified_keysyms(key);
|
let keysyms = kb_state.unmodified_keysyms(key);
|
||||||
for &sym in keysyms {
|
for &sym in keysyms {
|
||||||
if let Some(mods) = self.shortcuts.get(&(old_mods.mods_effective, sym)) {
|
let mods = old_mods.mods_effective & !(CAPS.0 | NUM.0);
|
||||||
|
if let Some(mods) = self.shortcuts.get(&(mods, sym)) {
|
||||||
shortcuts.push(ModifiedKeySym {
|
shortcuts.push(ModifiedKeySym {
|
||||||
mods,
|
mods,
|
||||||
sym: KeySym(sym),
|
sym: KeySym(sym),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue