Module: wine Branch: master Commit: 9a67bded8c5b6ba48470f30437564b3ae1437ef6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9a67bded8c5b6ba48470f30437...
Author: Lei Zhang thestig@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 ); } }