context menu issue fix #396

This commit is contained in:
stax76
2022-03-31 16:22:54 +02:00
parent 3f469897b0
commit 9a33bea7e7
10 changed files with 66 additions and 208 deletions

View File

@@ -48,6 +48,7 @@ namespace mpvnet
Core.Init();
Core.Shutdown += Core_Shutdown;
Core.ShowMenu += Core_ShowMenu;
Core.VideoSizeChanged += Core_VideoSizeChanged;
Core.ScaleWindow += Core_ScaleWindow;
Core.WindowScale += Core_WindowScale;
@@ -135,6 +136,18 @@ namespace mpvnet
}
}
private void Core_ShowMenu()
{
BeginInvoke(new Action(() => {
if (IsMouseInOSC())
return;
CursorHelp.Show();
UpdateMenu();
ContextMenu.IsOpen = true;
}));
}
void Core_ScaleWindow(float scale) {
BeginInvoke(new Action(() => {
int w, h;
@@ -791,30 +804,17 @@ namespace mpvnet
case 0x105: // WM_SYSKEYUP
case 0x201: // WM_LBUTTONDOWN
case 0x202: // WM_LBUTTONUP
case 0x204: // WM_RBUTTONDOWN
case 0x205: // WM_RBUTTONUP
case 0x207: // WM_MBUTTONDOWN
case 0x208: // WM_MBUTTONUP
case 0x20a: // WM_MOUSEWHEEL
case 0x20e: // WM_MOUSEHWHEEL
case 0x20b: // WM_XBUTTONDOWN
case 0x20c: // WM_XBUTTONUP
case 0x20c: // WM_XBUTTONUP
case 0x20e: // WM_MOUSEHWHEEL
if (Core.WindowHandle != IntPtr.Zero)
m.Result = SendMessage(Core.WindowHandle, m.Msg, m.WParam, m.LParam);
break;
case 0x0204: // WM_RBUTTONDOWN
if (IsMouseInOSC() && Core.WindowHandle != IntPtr.Zero)
m.Result = SendMessage(Core.WindowHandle, m.Msg, m.WParam, m.LParam);
break;
case 0x0205: // WM_RBUTTONUP
if (!IsMouseInOSC())
{
CursorHelp.Show();
UpdateMenu();
ContextMenu.IsOpen = true;
}
else
if (Core.WindowHandle != IntPtr.Zero)
m.Result = SendMessage(Core.WindowHandle, m.Msg, m.WParam, m.LParam);
break;
case 0x319: // WM_APPCOMMAND
{
string value = Input.WM_APPCOMMAND_to_mpv_key((int)(m.LParam.ToInt64() >> 16 & ~0xf000));