From 532bef82433f98a0c1f791bdc63ef62313faa217 Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Tue, 2 Jan 2024 17:52:54 +0100 Subject: [PATCH] Fix double clicks --- libraries/ZWidget/src/window/win32/win32window.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libraries/ZWidget/src/window/win32/win32window.cpp b/libraries/ZWidget/src/window/win32/win32window.cpp index 58a2c9214..e33bef4fd 100644 --- a/libraries/ZWidget/src/window/win32/win32window.cpp +++ b/libraries/ZWidget/src/window/win32/win32window.cpp @@ -64,7 +64,7 @@ Win32Window::Win32Window(DisplayWindowHost* windowHost) : WindowHost(windowHost) WNDCLASSEX classdesc = {}; classdesc.cbSize = sizeof(WNDCLASSEX); classdesc.hInstance = GetModuleHandle(0); - classdesc.style = CS_VREDRAW | CS_HREDRAW; + classdesc.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; classdesc.lpszClassName = L"ZWidgetWindow"; classdesc.lpfnWndProc = &Win32Window::WndProc; RegisterClassEx(&classdesc); @@ -420,6 +420,10 @@ LRESULT Win32Window::OnWindowMessage(UINT msg, WPARAM wparam, LPARAM lparam) { WindowHost->OnWindowMouseDown(GetLParamPos(lparam), IK_LeftMouse); } + else if (msg == WM_LBUTTONDBLCLK) + { + WindowHost->OnWindowMouseDoubleclick(GetLParamPos(lparam), IK_LeftMouse); + } else if (msg == WM_LBUTTONUP) { WindowHost->OnWindowMouseUp(GetLParamPos(lparam), IK_LeftMouse); @@ -428,6 +432,10 @@ LRESULT Win32Window::OnWindowMessage(UINT msg, WPARAM wparam, LPARAM lparam) { WindowHost->OnWindowMouseDown(GetLParamPos(lparam), IK_MiddleMouse); } + else if (msg == WM_MBUTTONDBLCLK) + { + WindowHost->OnWindowMouseDoubleclick(GetLParamPos(lparam), IK_MiddleMouse); + } else if (msg == WM_MBUTTONUP) { WindowHost->OnWindowMouseUp(GetLParamPos(lparam), IK_MiddleMouse); @@ -436,6 +444,10 @@ LRESULT Win32Window::OnWindowMessage(UINT msg, WPARAM wparam, LPARAM lparam) { WindowHost->OnWindowMouseDown(GetLParamPos(lparam), IK_RightMouse); } + else if (msg == WM_RBUTTONDBLCLK) + { + WindowHost->OnWindowMouseDoubleclick(GetLParamPos(lparam), IK_RightMouse); + } else if (msg == WM_RBUTTONUP) { WindowHost->OnWindowMouseUp(GetLParamPos(lparam), IK_RightMouse);