Lei Zhang : winex11.drv: Send WM_MOUSEACTIVATE before closing a window.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jun 21 09:47:40 CDT 2007


Module: wine
Branch: master
Commit: 9a67bded8c5b6ba48470f30437564b3ae1437ef6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9a67bded8c5b6ba48470f30437564b3ae1437ef6

Author: Lei Zhang <thestig at google.com>
Date:   Mon Jun 18 14:00:04 2007 -0700

winex11.drv: Send WM_MOUSEACTIVATE before closing a window.

---

 dlls/winex11.drv/event.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index e3047fd..f13e079 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -405,6 +405,27 @@ static void handle_wm_protocols( HWND hwnd, XClientMessageEvent *event )
                 if (state == 0xFFFFFFFF || (state & (MF_DISABLED | MF_GRAYED)))
                     return;
             }
+            if (GetActiveWindow() != hwnd)
+            {
+                LRESULT ma = SendMessageW( hwnd, WM_MOUSEACTIVATE,
+                                           (WPARAM)GetAncestor( hwnd, GA_ROOT ),
+                                           MAKELONG(HTCLOSE,WM_LBUTTONDOWN) );
+                switch(ma)
+                {
+                    case MA_NOACTIVATEANDEAT:
+                    case MA_ACTIVATEANDEAT:
+                        return;
+                    case MA_NOACTIVATE:
+                        break;
+                    case MA_ACTIVATE:
+                    case 0:
+                        SetActiveWindow(hwnd);
+                        break;
+                    default:
+                        WARN( "unknown WM_MOUSEACTIVATE code %d\n", (int) ma );
+                        break;
+                }
+            }
             PostMessageW( hwnd, WM_X11DRV_DELETE_WINDOW, 0, 0 );
         }
     }




More information about the wine-cvs mailing list