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/u... ============================================================================== --- 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; }