Author: gadamopoulos
Date: Sun Oct 26 00:58:52 2014
New Revision: 65001
URL:
http://svn.reactos.org/svn/reactos?rev=65001&view=rev
Log:
[user32]
- Properly notify the theme engine that the caption needs to be repainted on WM_SETICON
- Fixes a classic frame appearing when themes are enabled and we navigate to a different
folder
Modified:
branches/shell-experiments/win32ss/user/user32/windows/defwnd.c
Modified: branches/shell-experiments/win32ss/user/user32/windows/defwnd.c
URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/win32ss/user/…
==============================================================================
--- branches/shell-experiments/win32ss/user/user32/windows/defwnd.c [iso-8859-1]
(original)
+++ branches/shell-experiments/win32ss/user/user32/windows/defwnd.c [iso-8859-1] Sun Oct
26 00:58:52 2014
@@ -447,6 +447,27 @@
return TRUE;
}
+static void
+UserPaintCaption(HWND hwnd)
+{
+ /* FIXME: this is not 100% correct */
+
+ /*
+ * When themes are not enabled we can go on and paint the non client area.
+ * However if we do that with themes enabled we will draw a classic frame.
+ * This is sovled by sending a themes specific message to notify the themes
+ * engine that the caption needs to be redrawn
+ */
+ if(gpsi->dwSRVIFlags & SRVINFO_APIHOOK)
+ {
+ SendMessage(hwnd, WM_NCUAHDRAWCAPTION,0,0);
+ }
+ else
+ {
+ DefWndNCPaint(hwnd, HRGN_WINDOW, -1);
+ }
+}
+
// WM_SETICON
LRESULT FASTCALL
DefWndSetIcon(PWND pWnd, WPARAM wParam, LPARAM lParam)
@@ -481,7 +502,7 @@
NtUserSetProp(UserHMGetHandle(pWnd), gpsi->atomIconSmProp, hIconSmall);
if ((pWnd->style & WS_CAPTION ) == WS_CAPTION)
- DefWndNCPaint(UserHMGetHandle(pWnd), HRGN_WINDOW, -1); /* Repaint caption */
+ UserPaintCaption(UserHMGetHandle(pWnd)); /* Repaint caption */
return (LRESULT)hIconOld;
}
@@ -1454,17 +1475,7 @@
DefSetText(hWnd, (PCWSTR)lParam, TRUE);
if ((GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_CAPTION) == WS_CAPTION)
- {
- /* FIXME: this is not 100% correct */
- if(gpsi->dwSRVIFlags & SRVINFO_APIHOOK)
- {
- SendMessage(hWnd, WM_NCUAHDRAWCAPTION,0,0);
- }
- else
- {
- DefWndNCPaint(hWnd, HRGN_WINDOW, -1);
- }
- }
+ UserPaintCaption(hWnd);
Result = 1;
break;
}
@@ -1626,17 +1637,7 @@
DefSetText(hWnd, (PCWSTR)lParam, FALSE);
if ((GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_CAPTION) == WS_CAPTION)
- {
- /* FIXME: this is not 100% correct */
- if(gpsi->dwSRVIFlags & SRVINFO_APIHOOK)
- {
- SendMessage(hWnd, WM_NCUAHDRAWCAPTION,0,0);
- }
- else
- {
- DefWndNCPaint(hWnd, HRGN_WINDOW, -1);
- }
- }
+ UserPaintCaption(hWnd);
Result = 1;
break;
}