Files
fluxer/fluxer_desktop/native/linux-input-hook/src/modifiers.rs
T

24 lines
576 B
Rust

// SPDX-License-Identifier: AGPL-3.0-or-later
pub const SHIFT_MASK: u32 = 1 << 0;
pub const CONTROL_MASK: u32 = 1 << 2;
pub const MOD1_MASK: u32 = 1 << 3;
pub const MOD4_MASK: u32 = 1 << 6;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Modifiers {
pub ctrl: bool,
pub alt: bool,
pub shift: bool,
pub meta: bool,
}
pub fn from_state(state: u32) -> Modifiers {
Modifiers {
ctrl: (state & CONTROL_MASK) != 0,
alt: (state & MOD1_MASK) != 0,
shift: (state & SHIFT_MASK) != 0,
meta: (state & MOD4_MASK) != 0,
}
}