"minimize all": only minimize windows with valid positions
Modified: trunk/reactos/subsys/system/explorer/desktop/desktop.cpp

Modified: trunk/reactos/subsys/system/explorer/desktop/desktop.cpp
--- trunk/reactos/subsys/system/explorer/desktop/desktop.cpp	2005-04-02 16:17:08 UTC (rev 14447)
+++ trunk/reactos/subsys/system/explorer/desktop/desktop.cpp	2005-04-02 16:18:09 UTC (rev 14448)
@@ -155,8 +155,8 @@
 {
 	WindowSet& windows = *(WindowSet*)lparam;
 
-	if (IsWindowVisible(hwnd))
-		if (hwnd!=g_Globals._hwndDesktopBar && hwnd!=g_Globals._hwndDesktop)
+	if (hwnd!=g_Globals._hwndDesktopBar && hwnd!=g_Globals._hwndDesktop)
+		if (IsWindowVisible(hwnd))
 			windows.insert(hwnd);
 
 	return TRUE;
@@ -212,12 +212,17 @@
 {
 	list<MinimizeStruct>& minimized = *(list<MinimizeStruct>*)lparam;
 
-	if (IsWindowVisible(hwnd))
-		if (hwnd!=g_Globals._hwndDesktopBar && hwnd!=g_Globals._hwndDesktop)
-			if (!IsIconic(hwnd)) {
+	if (hwnd!=g_Globals._hwndDesktopBar && hwnd!=g_Globals._hwndDesktop)
+		if (IsWindowVisible(hwnd) && !IsIconic(hwnd)) {
+			RECT rect;
+
+			if (GetWindowRect(hwnd,&rect))
+				if (rect.right>0 && rect.bottom>0 &&
+					rect.right>rect.left && rect.bottom>rect.top) {
 				minimized.push_back(MinimizeStruct(hwnd, GetWindowStyle(hwnd)));
 				ShowWindowAsync(hwnd, SW_MINIMIZE);
 			}
+		}
 
 	return TRUE;
 }