Author: gadamopoulos Date: Tue Oct 28 17:32:01 2014 New Revision: 65077
URL: http://svn.reactos.org/svn/reactos?rev=65077&view=rev Log: Merge r65001 from shell-experiments branch: [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: trunk/reactos/win32ss/user/user32/windows/defwnd.c
Modified: trunk/reactos/win32ss/user/user32/windows/defwnd.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/user32/windows... ============================================================================== --- trunk/reactos/win32ss/user/user32/windows/defwnd.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/user32/windows/defwnd.c [iso-8859-1] Tue Oct 28 17:32:01 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; }