Permalink
Browse files

[Linux] Corrected values for mouse move and scroll events

  • Loading branch information...
1 parent 3881992 commit 4c6bb7a38e7d7c1f85640da928ae3d22a25faeb8 @thefiddler thefiddler committed Jul 16, 2014
Showing with 22 additions and 20 deletions.
  1. +22 −20 Source/OpenTK/Platform/Linux/LinuxNativeWindow.cs
@@ -183,29 +183,31 @@ MouseState ProcessMouse(MouseState mouse)
{
OnMouseUp(i);
}
+ }
- if (mouse.Position != previous_mouse.Position)
- {
- OnMouseMove(mouse.X, mouse.Y);
- }
+ if (mouse.X != previous_mouse.X || mouse.Y != previous_mouse.Y)
+ {
+ OnMouseMove(mouse.X, mouse.Y);
+ }
- if (mouse.Scroll != previous_mouse.Scroll)
- {
- OnMouseWheel(mouse.Scroll.X, mouse.Scroll.Y);
- }
+ if (mouse.Scroll != previous_mouse.Scroll)
+ {
+ float dx = mouse.Scroll.X - previous_mouse.Scroll.X;
+ float dy = mouse.Scroll.Y - previous_mouse.Scroll.Y;
+ OnMouseWheel(dx, dy);
+ }
- // Note: focus follows mouse. Literally.
- bool cursor_in = Bounds.Contains(new Point(mouse.X, mouse.Y));
- if (!cursor_in && Focused)
- {
- OnMouseLeave(EventArgs.Empty);
- SetFocus(false);
- }
- else if (cursor_in && !Focused)
- {
- OnMouseEnter(EventArgs.Empty);
- SetFocus(true);
- }
+ // Note: focus follows mouse. Literally.
+ bool cursor_in = Bounds.Contains(new Point(mouse.X, mouse.Y));
+ if (!cursor_in && Focused)
+ {
+ OnMouseLeave(EventArgs.Empty);
+ SetFocus(false);
+ }
+ else if (cursor_in && !Focused)
+ {
+ OnMouseEnter(EventArgs.Empty);
+ SetFocus(true);
}
return mouse;

0 comments on commit 4c6bb7a

Please sign in to comment.