Skip to content

Commit 6bcca8e

Browse files
committed
when window gains focus, update mouse coordinate
1 parent 87c7772 commit 6bcca8e

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

ports/glutin/window.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -260,13 +260,22 @@ impl Window {
260260
Event::Resized(width, height) => {
261261
self.event_queue.borrow_mut().push(WindowEvent::Resize(Size2D::typed(width, height)));
262262
}
263-
Event::MouseInput(element_state, mouse_button, _) => {
264-
// FIXME(#11130, pcwalton): The third field should be used.
263+
Event::MouseInput(element_state, mouse_button, pos) => {
265264
if mouse_button == MouseButton::Left ||
266-
mouse_button == MouseButton::Right {
267-
let mouse_pos = self.mouse_pos.get();
268-
self.handle_mouse(mouse_button, element_state, mouse_pos.x, mouse_pos.y);
269-
}
265+
mouse_button == MouseButton::Right {
266+
match pos {
267+
Some((x, y)) => {
268+
self.mouse_pos.set(Point2D::new(x, y));
269+
self.event_queue.borrow_mut().push(
270+
WindowEvent::MouseWindowMoveEventClass(Point2D::typed(x as f32, y as f32)));
271+
self.handle_mouse(mouse_button, element_state, x, y);
272+
}
273+
None => {
274+
let mouse_pos = self.mouse_pos.get();
275+
self.handle_mouse(mouse_button, element_state, mouse_pos.x, mouse_pos.y);
276+
}
277+
}
278+
}
270279
}
271280
Event::MouseMoved(x, y) => {
272281
self.mouse_pos.set(Point2D::new(x, y));

0 commit comments

Comments
 (0)