fix enabling of split border
Modified: trunk/reactos/subsys/system/explorer/shell/mainframe.cpp

Modified: trunk/reactos/subsys/system/explorer/shell/mainframe.cpp
--- trunk/reactos/subsys/system/explorer/shell/mainframe.cpp	2005-10-02 11:40:41 UTC (rev 18209)
+++ trunk/reactos/subsys/system/explorer/shell/mainframe.cpp	2005-10-02 12:24:10 UTC (rev 18210)
@@ -93,6 +93,7 @@
 
 	LPCITEMIDLIST parent_pidl = (LPCITEMIDLIST) ((LPBYTE)pida+pida->aoffset[0]);
 	ShellFolder folder(parent_pidl);
+	LOG(FmtString(TEXT("MainFrameBase::OpenShellFolders(): parent_pidl=%s"), (LPCTSTR)FileSysShellPath(parent_pidl)));
 
 	for(int i=pida->cidl; i>0; --i) {
 		LPCITEMIDLIST pidl = (LPCITEMIDLIST) ((LPBYTE)pida+pida->aoffset[i]);
@@ -109,6 +110,7 @@
 					bool separateFolders = XMLBool(explorer_options, "separate-folders", true);
 
 					ShellPath pidl_abs = ShellPath(pidl).create_absolute_pidl(parent_pidl);
+					LOG(FmtString(TEXT("MainFrameBase::OpenShellFolders(): pidl_abs=%s"), (LPCTSTR)FileSysShellPath(pidl_abs)));
 
 					if (hFrameWnd && (mdi || !separateFolders)) {
 						int flags = OWM_PIDL;
@@ -922,7 +924,7 @@
 				path = fsp;
 
 				if (path) {
-					LOG(FmtString(TEXT("PM_OPEN_WINDOW: path=%s"), path));
+					LOG(FmtString(TEXT("MDIMainFrame PM_OPEN_WINDOW: path=%s"), path));
 					lstrcpy(buffer, path);
 					path = buffer;
 				}
@@ -1354,47 +1356,52 @@
 
 	  case WM_PAINT: {
 		PaintCanvas canvas(_hwnd);
-		ClientRect rt(_hwnd);
-		rt.left = _split_pos-SPLIT_WIDTH/2;
-		rt.right = _split_pos+SPLIT_WIDTH/2+1;
 
-		if (_right_hwnd) {
-			WindowRect right_rect(_right_hwnd);
-			ScreenToClient(_hwnd, &right_rect);
-			rt.top = right_rect.top;
-			rt.bottom = right_rect.bottom;
+		if (_left_hwnd) {
+			ClientRect rt(_hwnd);
+			rt.left = _split_pos-SPLIT_WIDTH/2;
+			rt.right = _split_pos+SPLIT_WIDTH/2+1;
+
+			if (_right_hwnd) {
+				WindowRect right_rect(_right_hwnd);
+				ScreenToClient(_hwnd, &right_rect);
+				rt.top = right_rect.top;
+				rt.bottom = right_rect.bottom;
+			}
+
+			HBRUSH lastBrush = SelectBrush(canvas, GetStockBrush(COLOR_SPLITBAR));
+			Rectangle(canvas, rt.left, rt.top-1, rt.right, rt.bottom+1);
+			SelectObject(canvas, lastBrush);
 		}
-
-		HBRUSH lastBrush = SelectBrush(canvas, GetStockBrush(COLOR_SPLITBAR));
-		Rectangle(canvas, rt.left, rt.top-1, rt.right, rt.bottom+1);
-		SelectObject(canvas, lastBrush);
 		break;}
 
 	  case WM_SETCURSOR:
-		if (LOWORD(lparam) == HTCLIENT) {
-			POINT pt;
-			GetCursorPos(&pt);
-			ScreenToClient(_hwnd, &pt);
+  		if (_left_hwnd)
+			if (LOWORD(lparam) == HTCLIENT) {
+				POINT pt;
+				GetCursorPos(&pt);
+				ScreenToClient(_hwnd, &pt);
 
-			if (pt.x>=_split_pos-SPLIT_WIDTH/2 && pt.x<_split_pos+SPLIT_WIDTH/2+1) {
-				SetCursor(LoadCursor(0, IDC_SIZEWE));
-				return TRUE;
+				if (pt.x>=_split_pos-SPLIT_WIDTH/2 && pt.x<_split_pos+SPLIT_WIDTH/2+1) {
+					SetCursor(LoadCursor(0, IDC_SIZEWE));
+					return TRUE;
+				}
 			}
-		}
 		goto def;
 
-	  case WM_LBUTTONDOWN: {
-		int x = GET_X_LPARAM(lparam);
+	  case WM_LBUTTONDOWN:
+		if (_left_hwnd) {
+			int x = GET_X_LPARAM(lparam);
 
-		ClientRect rt(_hwnd);
+			ClientRect rt(_hwnd);
 
-		if (x>=_split_pos-SPLIT_WIDTH/2 && x<_split_pos+SPLIT_WIDTH/2+1) {
-			_last_split = _split_pos;
-			SetCapture(_hwnd);
+			if (x>=_split_pos-SPLIT_WIDTH/2 && x<_split_pos+SPLIT_WIDTH/2+1) {
+				_last_split = _split_pos;
+				SetCapture(_hwnd);
+			}
 		}
+		break;
 
-		break;}
-
 	  case WM_LBUTTONUP:
 		if (GetCapture() == _hwnd)
 			ReleaseCapture();
@@ -1445,7 +1452,7 @@
 				path = fsp;
 
 				if (path) {
-					LOG(FmtString(TEXT("PM_OPEN_WINDOW: path=%s"), path));
+					LOG(FmtString(TEXT("SDIMainFrame PM_OPEN_WINDOW: path=%s"), path));
 					lstrcpy(buffer, path);
 					path = buffer;
 				}
@@ -1548,7 +1555,7 @@
 
 		hdwp = DeferWindowPos(hdwp, _left_hwnd, 0, _clnt_rect.left, _clnt_rect.top, _split_pos-SPLIT_WIDTH/2-_clnt_rect.left, _clnt_rect.bottom-_clnt_rect.top, SWP_NOZORDER|SWP_NOACTIVATE);
 	} else {
-		//_split_pos = 0;
+		//_split_pos = -1;
 		cx = 0;
 	}
 
@@ -1661,7 +1668,7 @@
 	} else */{
 		_shellpath_info._open_mode = mode;
 		_shellpath_info._shell_path = path;
-		_shellpath_info._root_shell_path = SpecialFolderPath(CSIDL_DRIVES, _hwnd);	//@@
+		_shellpath_info._root_shell_path = SpecialFolderPath(CSIDL_DRIVES, _hwnd);	//@@ path
 
 		update_shell_browser();
 	}
@@ -1678,7 +1685,7 @@
 	} else {
 		_shellpath_info._open_mode = mode;
 		_shellpath_info._shell_path = path;
-		_shellpath_info._root_shell_path = SpecialFolderPath(CSIDL_DRIVES, _hwnd);	//@@
+		_shellpath_info._root_shell_path = path;	//@@ MF 02.10.2005 was: SpecialFolderPath(CSIDL_DRIVES, _hwnd);
 
 		update_shell_browser();
 	}