Linux: Work around mono bug with mouseup/down events

This commit is contained in:
Souryo 2016-12-14 19:33:33 -05:00
parent 571f439c67
commit 33385e7996

View file

@ -48,22 +48,20 @@ namespace Mesen.GUI.Controls
protected override void OnMouseDown(MouseEventArgs e) protected override void OnMouseDown(MouseEventArgs e)
{ {
base.OnMouseDown(e); base.OnMouseDown(e);
SetMouseButtonState(e.Button, true); SetMouseButtonState(System.Windows.Forms.Control.MouseButtons);
} }
protected override void OnMouseUp(MouseEventArgs e) protected override void OnMouseUp(MouseEventArgs e)
{ {
base.OnMouseUp(e); base.OnMouseUp(e);
SetMouseButtonState(e.Button, false); SetMouseButtonState(System.Windows.Forms.Control.MouseButtons);
} }
private void SetMouseButtonState(MouseButtons button, bool down) private void SetMouseButtonState(MouseButtons pressedButtons)
{ {
switch(button) { InteropEmu.SetKeyState(LeftMouseButtonKeyCode, pressedButtons.HasFlag(MouseButtons.Left));
case MouseButtons.Left: InteropEmu.SetKeyState(LeftMouseButtonKeyCode, down); break; InteropEmu.SetKeyState(RightMouseButtonKeyCode, pressedButtons.HasFlag(MouseButtons.Right));
case MouseButtons.Right: InteropEmu.SetKeyState(RightMouseButtonKeyCode, down); break; InteropEmu.SetKeyState(MiddleMouseButtonKeyCode, pressedButtons.HasFlag(MouseButtons.Middle));
case MouseButtons.Middle: InteropEmu.SetKeyState(MiddleMouseButtonKeyCode, down); break;
}
} }
private void ctrlRenderer_MouseMove(object sender, MouseEventArgs e) private void ctrlRenderer_MouseMove(object sender, MouseEventArgs e)