Skip to content

Commit 6d1e4a9

Browse files
committed
use different values for scroll and cursor speeds
1 parent a19f303 commit 6d1e4a9

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

src/default_keymap.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ pub fn keymap() -> Keymap {
106106
Some(FingerKey::Mouse(MouseEvent::Scroll(Direction::Down))),
107107
Some(FingerKey::Mouse(MouseEvent::Scroll(Direction::Up))),
108108
Some(FingerKey::Mouse(MouseEvent::Scroll(Direction::Right))),
109-
Some(FingerKey::Mouse(MouseEvent::SetSpeed(16))),
109+
Some(FingerKey::Mouse(MouseEvent::SetSpeed((16, 5)))),
110110
//Row 2
111111
Some(FingerKey::Keyboard(Keyboard::Tab)),
112112
Some(FingerKey::Mouse(MouseEvent::Cursor(Direction::Left))),
@@ -117,7 +117,7 @@ pub fn keymap() -> Keymap {
117117
Some(FingerKey::Mouse(MouseEvent::LeftClick)),
118118
Some(FingerKey::Mouse(MouseEvent::RightClick)),
119119
Some(FingerKey::Keyboard(Keyboard::ReturnEnter)),
120-
Some(FingerKey::Mouse(MouseEvent::SetSpeed(2))),
120+
Some(FingerKey::Mouse(MouseEvent::SetSpeed((2, 1)))),
121121
//Row 3
122122
None,
123123
None,
@@ -128,7 +128,7 @@ pub fn keymap() -> Keymap {
128128
None,
129129
None,
130130
None,
131-
Some(FingerKey::Mouse(MouseEvent::SetSpeed(1))),
131+
Some(FingerKey::Mouse(MouseEvent::SetSpeed((1, 1)))),
132132
],
133133
thumb_cluster: [
134134
None,

src/keymap.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,18 @@ enum MouseEvent {
5353
MiddleClick,
5454
Cursor(Direction),
5555
Scroll(Direction),
56-
SetSpeed(u8),
56+
/// (cursor, scroll) speeds
57+
SetSpeed((i8, i8)),
5758
}
5859
struct MouseReportBuilder {
5960
cursor: (i8, i8),
6061
buttons: [bool; 3],
6162
scroll_keys: [ScrollKey; 4],
6263
scroll_key_state: [bool; 4],
63-
speed: i8,
64+
speed: (i8, i8),
6465
}
6566
impl MouseReportBuilder {
66-
const DEFAULT_SPEED: i8 = 10;
67+
const DEFAULT_SPEED: (i8, i8) = (10, 1);
6768

6869
const fn new() -> Self {
6970
Self {
@@ -93,7 +94,7 @@ impl MouseReportBuilder {
9394
Left => self.scroll_key_state[2] = true,
9495
Right => self.scroll_key_state[3] = true,
9596
},
96-
MouseEvent::SetSpeed(val) => self.speed = val as i8,
97+
MouseEvent::SetSpeed(val) => self.speed = val,
9798
}
9899
}
99100

@@ -109,7 +110,7 @@ impl MouseReportBuilder {
109110
.map(|(i, pressed)| *pressed as u8 * (1 << i))
110111
.sum::<u8>();
111112
//Divide by sqrt(2) if the cursor speed is two dimensional
112-
let mut cursor_speed = self.speed;
113+
let (mut cursor_speed, scroll_speed) = self.speed;
113114
if self.cursor.0 != 0 && self.cursor.1 != 0 {
114115
cursor_speed = cursor_speed.saturating_mul(10);
115116
cursor_speed /= 14;
@@ -118,9 +119,9 @@ impl MouseReportBuilder {
118119
}
119120
}
120121
let vertical_wheel =
121-
(self.scroll_key_state[0] as i8 - self.scroll_key_state[1] as i8) * self.speed;
122+
(self.scroll_key_state[0] as i8 - self.scroll_key_state[1] as i8) * scroll_speed;
122123
let horizontal_wheel =
123-
(self.scroll_key_state[3] as i8 - self.scroll_key_state[2] as i8) * self.speed;
124+
(self.scroll_key_state[3] as i8 - self.scroll_key_state[2] as i8) * scroll_speed;
124125
let report = WheelMouseReport {
125126
buttons,
126127
x: self.cursor.0 * cursor_speed,

0 commit comments

Comments
 (0)