mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-22 02:01:55 +07:00
Add option to warp-mouse-to-focus to always center
This commit is contained in:
committed by
Ivan Molodetskikh
parent
0d4f0f00c0
commit
7f72c358d5
+32
-2
@@ -95,7 +95,7 @@ pub struct Input {
|
||||
#[knuffel(child)]
|
||||
pub disable_power_key_handling: bool,
|
||||
#[knuffel(child)]
|
||||
pub warp_mouse_to_focus: bool,
|
||||
pub warp_mouse_to_focus: Option<WarpMouseToFocus>,
|
||||
#[knuffel(child)]
|
||||
pub focus_follows_mouse: Option<FocusFollowsMouse>,
|
||||
#[knuffel(child)]
|
||||
@@ -369,6 +369,32 @@ pub struct FocusFollowsMouse {
|
||||
pub max_scroll_amount: Option<Percent>,
|
||||
}
|
||||
|
||||
#[derive(knuffel::Decode, Debug, PartialEq, Eq, Clone, Copy)]
|
||||
pub struct WarpMouseToFocus {
|
||||
#[knuffel(property, str)]
|
||||
pub mode: Option<WarpMouseToFocusMode>,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
|
||||
pub enum WarpMouseToFocusMode {
|
||||
CenterXy,
|
||||
CenterXyAlways,
|
||||
}
|
||||
|
||||
impl FromStr for WarpMouseToFocusMode {
|
||||
type Err = miette::Error;
|
||||
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
match s {
|
||||
"center-xy" => Ok(Self::CenterXy),
|
||||
"center-xy-always" => Ok(Self::CenterXyAlways),
|
||||
_ => Err(miette!(
|
||||
r#"invalid mode for warp-mouse-to-focus, can be "center-xy" or "center-xy-always" (or leave unset for separate centering)"#
|
||||
)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
pub struct Percent(pub f64);
|
||||
|
||||
@@ -4023,7 +4049,11 @@ mod tests {
|
||||
),
|
||||
},
|
||||
disable_power_key_handling: true,
|
||||
warp_mouse_to_focus: true,
|
||||
warp_mouse_to_focus: Some(
|
||||
WarpMouseToFocus {
|
||||
mode: None,
|
||||
},
|
||||
),
|
||||
focus_follows_mouse: Some(
|
||||
FocusFollowsMouse {
|
||||
max_scroll_amount: None,
|
||||
|
||||
Reference in New Issue
Block a user