Another attempt of a test for a visible desktop.
diff --git a/programs/winetest/Makefile.in b/programs/winetest/Makefile.in
index 02e813f..f75035d 100644
--- a/programs/winetest/Makefile.in
+++ b/programs/winetest/Makefile.in
@@ -4,7 +4,7 @@
VPATH = @srcdir@
MODULE = winetest.exe
APPMODE = -mconsole
-IMPORTS = comctl32 user32 wsock32
+IMPORTS = comctl32 user32 gdi32 wsock32
C_SRCS = \
gui.c \
diff --git a/programs/winetest/main.c b/programs/winetest/main.c
index 9bcfd6e..5f4b293 100644
--- a/programs/winetest/main.c
+++ b/programs/winetest/main.c
@@ -68,7 +68,23 @@
static int running_on_visible_desktop ()
{
- return IsWindowVisible( GetDesktopWindow() );
+ BOOL visible;
+ HWND desktop;
+ HDC hdc;
+ HRGN hrgn;
+ RECT rc;
+
+ desktop = GetDesktopWindow();
+ hdc = GetDC(desktop);
+ hrgn = CreateRectRgn(0, 0, 0, 0);
+ GetRandomRgn(hdc, hrgn, SYSRGN);
+
+ visible = GetRgnBox(hrgn, &rc) != NULLREGION;
+
+ DeleteObject(hrgn);
+ ReleaseDC(desktop, hdc);
+
+ return visible;
}
void print_version ()