winit-orbital: provide last mouse position with button events

This commit is contained in:
Jeremy Soller
2026-05-26 09:00:00 -06:00
parent 6616906647
commit 47dada25e4

View File

@@ -188,6 +188,7 @@ bitflags! {
struct EventState { struct EventState {
keyboard: KeyboardModifierState, keyboard: KeyboardModifierState,
mouse: MouseButtonState, mouse: MouseButtonState,
mouse_pos: (i32, i32),
resize_opt: Option<(u32, u32)>, resize_opt: Option<(u32, u32)>,
} }
@@ -423,10 +424,11 @@ impl EventLoop {
); );
}, },
EventOption::Mouse(MouseEvent { x, y }) => { EventOption::Mouse(MouseEvent { x, y }) => {
event_state.mouse_pos = (x, y);
app.window_event(window_target, window_id, event::WindowEvent::PointerMoved { app.window_event(window_target, window_id, event::WindowEvent::PointerMoved {
device_id: None, device_id: None,
primary: true, primary: true,
position: (x, y).into(), position: event_state.mouse_pos.into(),
source: event::PointerSource::Mouse, source: event::PointerSource::Mouse,
}); });
}, },
@@ -441,7 +443,7 @@ impl EventLoop {
device_id: None, device_id: None,
primary: true, primary: true,
state, state,
position: dpi::PhysicalPosition::default(), position: event_state.mouse_pos.into(),
button: button.into(), button: button.into(),
}); });
} }