mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-04-13 06:51:30 +03:00
libei: fix touchpad scrolling (#121)
This commit is contained in:
committed by
GitHub
parent
1f0d386d4a
commit
effb9ce0fa
@@ -466,15 +466,38 @@ async fn handle_ei_event(
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EiEvent::ScrollDelta(_) => {}
|
EiEvent::ScrollDelta(delta) => {
|
||||||
|
if let Some(handle) = current_client {
|
||||||
|
let mut events = vec![];
|
||||||
|
if delta.dy != 0. {
|
||||||
|
events.push(PointerEvent::Axis {
|
||||||
|
time: 0,
|
||||||
|
axis: 0,
|
||||||
|
value: delta.dy as f64,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if delta.dx != 0. {
|
||||||
|
events.push(PointerEvent::Axis {
|
||||||
|
time: 0,
|
||||||
|
axis: 1,
|
||||||
|
value: delta.dx as f64,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
for event in events {
|
||||||
|
event_tx
|
||||||
|
.send((handle, Event::Pointer(event)))
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
EiEvent::ScrollStop(_) => {}
|
EiEvent::ScrollStop(_) => {}
|
||||||
EiEvent::ScrollCancel(_) => {}
|
EiEvent::ScrollCancel(_) => {}
|
||||||
EiEvent::ScrollDiscrete(scroll) => {
|
EiEvent::ScrollDiscrete(scroll) => {
|
||||||
if scroll.discrete_dy != 0 {
|
if scroll.discrete_dy != 0 {
|
||||||
let event = PointerEvent::Axis {
|
let event = PointerEvent::AxisDiscrete120 {
|
||||||
time: 0,
|
|
||||||
axis: 0,
|
axis: 0,
|
||||||
value: scroll.discrete_dy as f64,
|
value: scroll.discrete_dy,
|
||||||
};
|
};
|
||||||
if let Some(current_client) = current_client {
|
if let Some(current_client) = current_client {
|
||||||
event_tx
|
event_tx
|
||||||
@@ -484,10 +507,9 @@ async fn handle_ei_event(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if scroll.discrete_dx != 0 {
|
if scroll.discrete_dx != 0 {
|
||||||
let event = PointerEvent::Axis {
|
let event = PointerEvent::AxisDiscrete120 {
|
||||||
time: 0,
|
|
||||||
axis: 1,
|
axis: 1,
|
||||||
value: scroll.discrete_dx as f64,
|
value: scroll.discrete_dx,
|
||||||
};
|
};
|
||||||
if let Some(current_client) = current_client {
|
if let Some(current_client) = current_client {
|
||||||
event_tx
|
event_tx
|
||||||
|
|||||||
Reference in New Issue
Block a user