From 9513c9bf12926e82c6956910366e661539789933 Mon Sep 17 00:00:00 2001 From: Joachim Henze Date: Wed, 12 Jun 2019 20:12:21 +0200 Subject: [PATCH] [0.4.12][COMCTL32] Workaround v6 button redraw regressions CORE-13278 & CORE-16093 Most likely not correct, as it breaks comctl32:buttonv6 tests https://reactos.org/testman/compare.php?ids=68146,68147 But greatly improves perceived flickering when hovering with the mouse about buttons in unthemed mode. We still fear that this workaround could break buttons that intend to change their appearance when being hovered. We workaround only the RC, but will leave master affected for now. --- dll/win32/comctl32/button.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dll/win32/comctl32/button.c b/dll/win32/comctl32/button.c index aacb96f7a29..b6611cf61d2 100644 --- a/dll/win32/comctl32/button.c +++ b/dll/win32/comctl32/button.c @@ -842,7 +842,9 @@ static LRESULT CALLBACK BUTTON_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, L nmhotitem.dwFlags = HICF_ENTERING; SendMessageW(GetParent(hWnd), WM_NOTIFY, nmhotitem.hdr.idFrom, (LPARAM)&nmhotitem); - InvalidateRect(hWnd, NULL, TRUE); + theme = GetWindowTheme( hWnd ); + if (theme) + InvalidateRect(hWnd, NULL, TRUE); } if(!TrackMouseEvent(&mouse_event) || !(mouse_event.dwFlags&TME_LEAVE)) @@ -896,7 +898,9 @@ static LRESULT CALLBACK BUTTON_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, L nmhotitem.dwFlags = HICF_LEAVING; SendMessageW(GetParent(hWnd), WM_NOTIFY, nmhotitem.hdr.idFrom, (LPARAM)&nmhotitem); - InvalidateRect(hWnd, NULL, TRUE); + theme = GetWindowTheme( hWnd ); + if (theme) + InvalidateRect(hWnd, NULL, TRUE); } break; #else