Linux: Work around mono bug with mouseup/down events
This commit is contained in:
parent
571f439c67
commit
33385e7996
1 changed files with 7 additions and 9 deletions
|
@ -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)
|
||||||
|
|
Loading…
Add table
Reference in a new issue