Author: gadamopoulos Date: Wed Oct 19 19:21:59 2011 New Revision: 54201
URL: http://svn.reactos.org/svn/reactos?rev=54201&view=rev Log: [user32] - When themes are active and the text of a window changes, we should send the WM_NCUAHDRAWCAPTION message instead of drawing the window directly ( which will result painting a classic caption on the themed window) - Fixes explorer window that is repainted with a classic style when a subfolder is opened
Modified: trunk/reactos/dll/win32/user32/windows/defwnd.c trunk/reactos/dll/win32/uxtheme/nonclient.c
Modified: trunk/reactos/dll/win32/user32/windows/defwnd.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/de... ============================================================================== --- trunk/reactos/dll/win32/user32/windows/defwnd.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/user32/windows/defwnd.c [iso-8859-1] Wed Oct 19 19:21:59 2011 @@ -1984,7 +1984,15 @@
if ((GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_CAPTION) == WS_CAPTION) { - DefWndNCPaint(hWnd, HRGN_WINDOW, -1); + /* FIXME: this is not 100% correct */ + if(gpsi->dwSRVIFlags & SRVINFO_APIHOOK) + { + SendMessage(hWnd, WM_NCUAHDRAWCAPTION,0,0); + } + else + { + DefWndNCPaint(hWnd, HRGN_WINDOW, -1); + } } Result = 1; break; @@ -2130,7 +2138,15 @@
if ((GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_CAPTION) == WS_CAPTION) { - DefWndNCPaint(hWnd, HRGN_WINDOW, -1); + /* FIXME: this is not 100% correct */ + if(gpsi->dwSRVIFlags & SRVINFO_APIHOOK) + { + SendMessage(hWnd, WM_NCUAHDRAWCAPTION,0,0); + } + else + { + DefWndNCPaint(hWnd, HRGN_WINDOW, -1); + } } Result = 1; break;
Modified: trunk/reactos/dll/win32/uxtheme/nonclient.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/nonclient... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/nonclient.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/nonclient.c [iso-8859-1] Wed Oct 19 19:21:59 2011 @@ -1024,6 +1024,8 @@ { case WM_NCPAINT: return ThemeHandleNCPaint(hWnd, (HRGN)wParam); + case WM_NCUAHDRAWCAPTION: + case WM_NCUAHDRAWFRAME: case WM_NCACTIVATE: ThemeHandleNCPaint(hWnd, (HRGN)1); return TRUE; @@ -1065,16 +1067,13 @@ Pt.x = (short)LOWORD(lParam); Pt.y = (short)HIWORD(lParam); NC_TrackScrollBar(hWnd, wParam, Pt); + return 0; } else { return DefWndProc(hWnd, Msg, wParam, lParam); } } - case WM_NCUAHDRAWCAPTION: - case WM_NCUAHDRAWFRAME: - /* FIXME: how should these be handled? */ - return 0; default: return DefWndProc(hWnd, Msg, wParam, lParam); }