diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-23 20:23:21 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-23 20:30:45 +0400 |
| commit | a16a0f0e52d6df8abd602baa15cee44e0656d790 (patch) | |
| tree | 821c7c4a71975dd5b23e8b4d0ddd4f12465b0c0c /src/niri.rs | |
| parent | 6ba195211bf60c3b753e4167b047b055dd5c129d (diff) | |
| download | niri-a16a0f0e52d6df8abd602baa15cee44e0656d790.tar.gz niri-a16a0f0e52d6df8abd602baa15cee44e0656d790.tar.bz2 niri-a16a0f0e52d6df8abd602baa15cee44e0656d790.zip | |
Implement TouchpadScroll binds
Diffstat (limited to 'src/niri.rs')
| -rw-r--r-- | src/niri.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/niri.rs b/src/niri.rs index e2b83930..363c2ae6 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -97,7 +97,9 @@ use crate::dbus::gnome_shell_screenshot::{NiriToScreenshot, ScreenshotToNiri}; use crate::dbus::mutter_screen_cast::{self, ScreenCastToNiri}; use crate::frame_clock::FrameClock; use crate::handlers::configure_lock_surface; -use crate::input::{apply_libinput_settings, mods_with_wheel_binds, TabletData}; +use crate::input::{ + apply_libinput_settings, mods_with_finger_scroll_binds, mods_with_wheel_binds, TabletData, +}; use crate::ipc::server::IpcServer; use crate::layout::{Layout, MonitorRenderElement}; use crate::protocols::foreign_toplevel::{self, ForeignToplevelManagerState}; @@ -209,6 +211,9 @@ pub struct Niri { pub vertical_wheel_tracker: ScrollTracker, pub horizontal_wheel_tracker: ScrollTracker, pub mods_with_wheel_binds: HashSet<Modifiers>, + pub vertical_finger_scroll_tracker: ScrollTracker, + pub horizontal_finger_scroll_tracker: ScrollTracker, + pub mods_with_finger_scroll_binds: HashSet<Modifiers>, pub lock_state: LockState, @@ -856,6 +861,8 @@ impl State { self.niri.hotkey_overlay.on_hotkey_config_updated(); self.niri.mods_with_wheel_binds = mods_with_wheel_binds(self.backend.mod_key(), &config.binds); + self.niri.mods_with_finger_scroll_binds = + mods_with_finger_scroll_binds(self.backend.mod_key(), &config.binds); } if config.window_rules != old_config.window_rules { @@ -1166,6 +1173,8 @@ impl Niri { CursorManager::new(&config_.cursor.xcursor_theme, config_.cursor.xcursor_size); let mods_with_wheel_binds = mods_with_wheel_binds(backend.mod_key(), &config_.binds); + let mods_with_finger_scroll_binds = + mods_with_finger_scroll_binds(backend.mod_key(), &config_.binds); let (tx, rx) = calloop::channel::channel(); event_loop @@ -1325,6 +1334,11 @@ impl Niri { horizontal_wheel_tracker: ScrollTracker::new(120), mods_with_wheel_binds, + // 10 is copied from Clutter: DISCRETE_SCROLL_STEP. + vertical_finger_scroll_tracker: ScrollTracker::new(10), + horizontal_finger_scroll_tracker: ScrollTracker::new(10), + mods_with_finger_scroll_binds, + lock_state: LockState::Unlocked, screenshot_ui, |
