[PATCH] winex11.drv: some windows are not menu.

Chao Long longchao at uniontech.com
Thu Sep 16 04:03:45 CDT 2021


Signed-off-by: Chao Long <longchao at uniontech.com>
---
 dlls/winex11.drv/event.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index 1772a27c48b..3e4742078be 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -707,9 +707,11 @@ static void handle_wm_protocols( HWND hwnd, XClientMessageEvent *event )
         {
             /* simulate a mouse click on the menu to find out
              * whether the window wants to be activated */
+	    DWORD ht = HTCAPTION;
+	    if (GetClassLongW(hwnd, GCL_STYLE) & WS_SYSMENU) ht = HTMENU;
             LRESULT ma = SendMessageW( hwnd, WM_MOUSEACTIVATE,
                                        (WPARAM)GetAncestor( hwnd, GA_ROOT ),
-                                       MAKELONG( HTMENU, WM_LBUTTONDOWN ) );
+                                       MAKELONG( ht, WM_LBUTTONDOWN ) );
             if (ma != MA_NOACTIVATEANDEAT && ma != MA_NOACTIVATE)
             {
                 set_focus( event->display, hwnd, event_time );
-- 
2.20.1






More information about the wine-devel mailing list