leave TrackStartmenu() function when executing any start menu command
Modified: trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp

Modified: trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp
--- trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp	2005-10-05 19:50:48 UTC (rev 18280)
+++ trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp	2005-10-05 19:51:08 UTC (rev 18281)
@@ -311,7 +311,7 @@
 		break;
 
 	  case WM_MOVE: {
-		POINTS& pos = MAKEPOINTS(lparam);
+		const POINTS& pos = MAKEPOINTS(lparam);
 
 		 // move open submenus of floating menus
 		if (_submenu) {
@@ -1623,13 +1623,13 @@
 	ShowWindow(hwnd, SW_SHOW);
 	SetForegroundWindow(hwnd);
 
-	while(IsWindow(hwnd)) {
+	while(IsWindow(hwnd) && IsWindowVisible(hwnd)) {
 		if (!GetMessage(&msg, 0, 0, 0)) {
 			PostQuitMessage(msg.wParam);
 			break;
 		}
 
-		 // Check for a mouse click on any window, which is not part of the start menu
+		 // Check for a mouse click on any window, that is not part of the start menu
 		if (msg.message==WM_LBUTTONDOWN || msg.message==WM_MBUTTONDOWN || msg.message==WM_RBUTTONDOWN) {
 			StartMenu* menu_wnd = NULL;