[Linux] Corrected values for mouse move and scroll events

This commit is contained in:
thefiddler 2014-07-16 14:25:55 +02:00
parent 3881992bf7
commit 4c6bb7a38e

View file

@ -183,29 +183,31 @@ namespace OpenTK.Platform.Linux
{
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;