Vitaliy Margolen : server: Treat desktop as a top-level window.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jul 23 05:55:32 CDT 2007


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

Author: Vitaliy Margolen <wine-patches at kievinfo.com>
Date:   Fri Jul 20 07:15:39 2007 -0600

server: Treat desktop as a top-level window.

---

 dlls/user32/tests/msg.c |    2 +-
 dlls/user32/tests/win.c |    3 ---
 server/window.c         |    2 +-
 3 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index d04028c..799c891 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -9250,7 +9250,7 @@ static void test_SetForegroundWindow(void)
     trace("SetForegroundWindow( GetDesktopWindow() )\n");
     SetForegroundWindow( GetDesktopWindow() );
     ok_sequence(SetForegroundWindowSeq, "SetForegroundWindow( desktop ) away from "
-                                        "foreground top level window", TRUE);
+                                        "foreground top level window", FALSE);
     trace("done\n");
 
     DestroyWindow(hwnd);
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index b5d2ad5..6cbddeb 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -2213,12 +2213,9 @@ static void test_SetForegroundWindow(HWND hwnd)
 
     hwnd2 = GetForegroundWindow();
     ok(hwnd2 == hwnd, "Wrong foreground window %p\n", hwnd2);
-    todo_wine
-    {
     ok(SetForegroundWindow( GetDesktopWindow() ), "SetForegroundWindow(desktop) error: %d\n", GetLastError());
     hwnd2 = GetForegroundWindow();
     ok(hwnd2 != hwnd, "Wrong foreground window %p\n", hwnd2);
-    }
 
     ShowWindow(hwnd, SW_HIDE);
     check_wnd_state(0, 0, 0, 0);
diff --git a/server/window.c b/server/window.c
index cbb4296..182213e 100644
--- a/server/window.c
+++ b/server/window.c
@@ -514,7 +514,7 @@ int is_child_window( user_handle_t parent, user_handle_t child )
 int is_top_level_window( user_handle_t window )
 {
     struct window *win = get_user_object( window, USER_WINDOW );
-    return (win && win->parent && is_desktop_window(win->parent));
+    return (win && (is_desktop_window(win) || is_desktop_window(win->parent)));
 }
 
 /* make a window active if possible */




More information about the wine-cvs mailing list