diff --git a/windows/x11drv/event.c b/windows/x11drv/event.c index 4871844b59d..7cee1eff98d 100644 --- a/windows/x11drv/event.c +++ b/windows/x11drv/event.c @@ -737,7 +737,14 @@ static void EVENT_FocusOut( HWND hWnd, XFocusChangeEvent *event ) if (event->detail != NotifyPointer) if (hWnd == GetForegroundWindow()) { + WND *pWnd = WIN_FindWndPtr(hWnd); + + if( ((pWnd->dwStyle & WS_POPUP) == WS_POPUP) && + ((pWnd->dwStyle & WS_POPUPWINDOW) != WS_POPUPWINDOW) ) + SendMessageA(hWnd, WM_CLOSE, 0, 0 ); + else SendMessageA( hWnd, WM_CANCELMODE, 0, 0 ); + WIN_ReleaseWndPtr(pWnd); SetForegroundWindow( 0 ); } }