From 67ee3d654e5e70f1209bbd319f921cf4cdbfcd71 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 19 Mar 2016 17:19:27 +0100 Subject: Test if handling messages on the parent hwnd has any positive effects. --- plugingui/nativewindow_win32.cc | 10 ++++++---- plugingui/nativewindow_win32.h | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/plugingui/nativewindow_win32.cc b/plugingui/nativewindow_win32.cc index 5acb43b..99c0c3e 100644 --- a/plugingui/nativewindow_win32.cc +++ b/plugingui/nativewindow_win32.cc @@ -315,12 +315,14 @@ NativeWindowWin32::NativeWindowWin32(void* native_window, Window& window) RegisterClassEx(&wcex); + parent_window = (HWND)native_window; + m_hwnd = CreateWindowEx(0/*ex_style*/, m_className, "DGBasisWidget", (native_window?WS_CHILD:WS_OVERLAPPEDWINDOW) | WS_VISIBLE, window.x(), window.y(), window.width(), window.height(), - (HWND)native_window, nullptr, + parent_window, nullptr, GetModuleHandle(nullptr), nullptr); SetWindowLongPtr(m_hwnd, GWLP_USERDATA, (LONG_PTR)this); @@ -396,7 +398,7 @@ void NativeWindowWin32::grabMouse(bool grab) bool NativeWindowWin32::hasEvent() { MSG msg; - return PeekMessage(&msg, m_hwnd, 0, 0, PM_NOREMOVE) != 0; + return PeekMessage(&msg, parent_window, 0, 0, PM_NOREMOVE) != 0; } Event* NativeWindowWin32::getNextEvent() @@ -404,7 +406,7 @@ Event* NativeWindowWin32::getNextEvent() Event* event = nullptr; MSG msg; - if(GetMessage(&msg, m_hwnd, 0, 0)) + if(GetMessage(&msg, parent_window, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); @@ -421,7 +423,7 @@ Event* NativeWindowWin32::peekNextEvent() Event* event = nullptr; MSG msg; - if(PeekMessage(&msg, m_hwnd, 0, 0, PM_NOREMOVE)) + if(PeekMessage(&msg, parent_window, 0, 0, PM_NOREMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); diff --git a/plugingui/nativewindow_win32.h b/plugingui/nativewindow_win32.h index 2c8507d..e6db787 100644 --- a/plugingui/nativewindow_win32.h +++ b/plugingui/nativewindow_win32.h @@ -59,6 +59,7 @@ public: private: static LRESULT CALLBACK dialogProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp); + HWND parent_window; Window& window; WNDID m_hwnd = 0; char* m_className = nullptr; -- cgit v1.2.3