mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-03-07 11:59:59 +03:00
macos: fix scroll capture
This commit is contained in:
@@ -318,8 +318,11 @@ fn get_events(
|
||||
})))
|
||||
}
|
||||
CGEventType::ScrollWheel => {
|
||||
let v = ev.get_integer_value_field(EventField::SCROLL_WHEEL_EVENT_POINT_DELTA_AXIS_1);
|
||||
let h = ev.get_integer_value_field(EventField::SCROLL_WHEEL_EVENT_POINT_DELTA_AXIS_2);
|
||||
if ev.get_integer_value_field(EventField::SCROLL_WHEEL_EVENT_IS_CONTINUOUS) != 0 {
|
||||
let v =
|
||||
ev.get_integer_value_field(EventField::SCROLL_WHEEL_EVENT_POINT_DELTA_AXIS_1);
|
||||
let h =
|
||||
ev.get_integer_value_field(EventField::SCROLL_WHEEL_EVENT_POINT_DELTA_AXIS_2);
|
||||
if v != 0 {
|
||||
result.push(CaptureEvent::Input(Event::Pointer(PointerEvent::Axis {
|
||||
time: 0,
|
||||
@@ -334,6 +337,29 @@ fn get_events(
|
||||
value: h as f64,
|
||||
})));
|
||||
}
|
||||
} else {
|
||||
// line based scrolling
|
||||
const LINES_PER_STEP: i32 = 3;
|
||||
const V120_STEPS_PER_LINE: i32 = 120 / LINES_PER_STEP;
|
||||
let v = ev.get_integer_value_field(EventField::SCROLL_WHEEL_EVENT_DELTA_AXIS_1);
|
||||
let h = ev.get_integer_value_field(EventField::SCROLL_WHEEL_EVENT_DELTA_AXIS_2);
|
||||
if v != 0 {
|
||||
result.push(CaptureEvent::Input(Event::Pointer(
|
||||
PointerEvent::AxisDiscrete120 {
|
||||
axis: 0, // Vertical
|
||||
value: V120_STEPS_PER_LINE * v as i32,
|
||||
},
|
||||
)));
|
||||
}
|
||||
if h != 0 {
|
||||
result.push(CaptureEvent::Input(Event::Pointer(
|
||||
PointerEvent::AxisDiscrete120 {
|
||||
axis: 1, // Horizontal
|
||||
value: V120_STEPS_PER_LINE * h as i32,
|
||||
},
|
||||
)));
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user