[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.
This commit is contained in:
Joachim Henze 2019-06-12 20:12:21 +02:00
parent ab7f77a021
commit 9513c9bf12

View file

@ -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