Module: wine Branch: master Commit: c1297ac0d8719972203b23e18da04f84c7486f6e URL: http://source.winehq.org/git/wine.git/?a=commit;h=c1297ac0d8719972203b23e18d...
Author: Alexandre Julliard julliard@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; }