aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx/UI/Renderer/EmbeddedWindow.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx/UI/Renderer/EmbeddedWindow.cs')
-rw-r--r--src/Ryujinx/UI/Renderer/EmbeddedWindow.cs78
1 files changed, 5 insertions, 73 deletions
diff --git a/src/Ryujinx/UI/Renderer/EmbeddedWindow.cs b/src/Ryujinx/UI/Renderer/EmbeddedWindow.cs
index 3bf19b43..8c5e31ff 100644
--- a/src/Ryujinx/UI/Renderer/EmbeddedWindow.cs
+++ b/src/Ryujinx/UI/Renderer/EmbeddedWindow.cs
@@ -141,80 +141,10 @@ namespace Ryujinx.Ava.UI.Renderer
_wndProcDelegate = delegate (IntPtr hWnd, WindowsMessages msg, IntPtr wParam, IntPtr lParam)
{
- if (VisualRoot != null)
+ switch (msg)
{
- if (msg == WindowsMessages.Lbuttondown ||
- msg == WindowsMessages.Rbuttondown ||
- msg == WindowsMessages.Lbuttonup ||
- msg == WindowsMessages.Rbuttonup ||
- msg == WindowsMessages.Mousemove)
- {
- Point rootVisualPosition = this.TranslatePoint(new Point((long)lParam & 0xFFFF, (long)lParam >> 16 & 0xFFFF), this).Value;
- Pointer pointer = new(0, PointerType.Mouse, true);
-
-#pragma warning disable CS0618 // Type or member is obsolete (As of Avalonia 11, the constructors for PointerPressedEventArgs & PointerEventArgs are marked as obsolete)
- switch (msg)
- {
- case WindowsMessages.Lbuttondown:
- case WindowsMessages.Rbuttondown:
- {
- bool isLeft = msg == WindowsMessages.Lbuttondown;
- RawInputModifiers pointerPointModifier = isLeft ? RawInputModifiers.LeftMouseButton : RawInputModifiers.RightMouseButton;
- PointerPointProperties properties = new(pointerPointModifier, isLeft ? PointerUpdateKind.LeftButtonPressed : PointerUpdateKind.RightButtonPressed);
-
- var evnt = new PointerPressedEventArgs(
- this,
- pointer,
- this,
- rootVisualPosition,
- (ulong)Environment.TickCount64,
- properties,
- KeyModifiers.None);
-
- RaiseEvent(evnt);
-
- break;
- }
- case WindowsMessages.Lbuttonup:
- case WindowsMessages.Rbuttonup:
- {
- bool isLeft = msg == WindowsMessages.Lbuttonup;
- RawInputModifiers pointerPointModifier = isLeft ? RawInputModifiers.LeftMouseButton : RawInputModifiers.RightMouseButton;
- PointerPointProperties properties = new(pointerPointModifier, isLeft ? PointerUpdateKind.LeftButtonReleased : PointerUpdateKind.RightButtonReleased);
-
- var evnt = new PointerReleasedEventArgs(
- this,
- pointer,
- this,
- rootVisualPosition,
- (ulong)Environment.TickCount64,
- properties,
- KeyModifiers.None,
- isLeft ? MouseButton.Left : MouseButton.Right);
-
- RaiseEvent(evnt);
-
- break;
- }
- case WindowsMessages.Mousemove:
- {
- var evnt = new PointerEventArgs(
- PointerMovedEvent,
- this,
- pointer,
- this,
- rootVisualPosition,
- (ulong)Environment.TickCount64,
- new PointerPointProperties(RawInputModifiers.None, PointerUpdateKind.Other),
- KeyModifiers.None);
-
- RaiseEvent(evnt);
-
- break;
- }
- }
-#pragma warning restore CS0618
- }
+ case WindowsMessages.NcHitTest:
+ return -1;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
@@ -234,6 +164,8 @@ namespace Ryujinx.Ava.UI.Renderer
WindowHandle = CreateWindowEx(0, _className, "NativeWindow", WindowStyles.WsChild, 0, 0, 640, 480, control.Handle, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
+ SetWindowLongPtrW(control.Handle, GWLP_WNDPROC, wndClassEx.lpfnWndProc);
+
Marshal.FreeHGlobal(wndClassEx.lpszClassName);
return new PlatformHandle(WindowHandle, "HWND");