Alexandre Julliard : winex11: Only take managed popups into account when deciding whether to make a window managed .
Alexandre Julliard
julliard at winehq.org
Mon Dec 19 13:39:22 CST 2011
Module: wine
Branch: master
Commit: c1297ac0d8719972203b23e18da04f84c7486f6e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c1297ac0d8719972203b23e18da04f84c7486f6e
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Dec 19 11:12:38 2011 +0100
winex11: Only take managed popups into account when deciding whether to make a window managed.
---
dlls/winex11.drv/window.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 1fb339a..0411ddf 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -159,12 +159,15 @@ struct has_popup_result
BOOL found;
};
-static BOOL CALLBACK has_popup( HWND hwnd, LPARAM lparam )
+static BOOL CALLBACK has_managed_popup( HWND hwnd, LPARAM lparam )
{
struct has_popup_result *result = (struct has_popup_result *)lparam;
+ struct x11drv_win_data *data;
if (hwnd == result->hwnd) return FALSE; /* popups are always above owner */
- result->found = (GetWindow( hwnd, GW_OWNER ) == result->hwnd);
+ if (!(data = X11DRV_get_win_data( hwnd ))) return TRUE;
+ if (GetWindow( hwnd, GW_OWNER ) != result->hwnd) return TRUE;
+ result->found = data->managed;
return !result->found;
}
@@ -174,7 +177,7 @@ static BOOL has_owned_popups( HWND hwnd )
result.hwnd = hwnd;
result.found = FALSE;
- EnumWindows( has_popup, (LPARAM)&result );
+ EnumWindows( has_managed_popup, (LPARAM)&result );
return result.found;
}
More information about the wine-cvs
mailing list