Piotr Caban : winex11.drv: Don' t assume that owner is top-level window in set_style_hints.

Alexandre Julliard julliard at winehq.org
Sun Jul 3 12:18:28 CDT 2016


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Sat Jun 25 13:59:49 2016 +0200

winex11.drv: Don't assume that owner is top-level window in set_style_hints.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winex11.drv/window.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 06ce26e..31ffefe 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -748,10 +748,16 @@ static void set_style_hints( struct x11drv_win_data *data, DWORD style, DWORD ex
 {
     Window group_leader = data->whole_window;
     HWND owner = GetWindow( data->hwnd, GW_OWNER );
-    Window owner_win = X11DRV_get_whole_window( owner );
+    Window owner_win = 0;
     XWMHints *wm_hints;
     Atom window_type;
 
+    if (owner)
+    {
+        owner = GetAncestor( owner, GA_ROOT );
+        owner_win = X11DRV_get_whole_window( owner );
+    }
+
     if (owner_win)
     {
         XSetTransientForHint( data->display, data->whole_window, owner_win );




More information about the wine-cvs mailing list