Author: gadamopoulos
Date: Sat Mar 11 13:42:29 2017
New Revision: 74149
URL:
http://svn.reactos.org/svn/reactos?rev=74149&view=rev
Log:
[COMCTL32] -Fix some tests regarding how the v6 buttons gets repainted.
Modified:
trunk/reactos/dll/win32/comctl32/button.c
trunk/reactos/dll/win32/comctl32/theme_button.c
Modified: trunk/reactos/dll/win32/comctl32/button.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/button.…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/button.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/button.c [iso-8859-1] Sat Mar 11 13:42:29 2017
@@ -508,30 +508,35 @@
case WM_THEMECHANGED:
CloseThemeData (GetWindowTheme(hWnd));
OpenThemeData(hWnd, WC_BUTTONW);
- InvalidateRect(hWnd, NULL, FALSE);
+ InvalidateRect(hWnd, NULL, TRUE);
break;
- case WM_MOUSEHOVER:
- {
- int state = (int)SendMessageW(hWnd, BM_GETSTATE, 0, 0);
- set_button_state(hWnd, state|BST_HOT);
- InvalidateRect(hWnd, NULL, FALSE);
+ case WM_MOUSELEAVE:
+ {
+ state = get_button_state( hWnd );
+ if (state & BST_HOT)
+ {
+ state &= ~BST_HOT;
+ set_button_state(hWnd, state);
+ InvalidateRect(hWnd, NULL, TRUE);
+ }
break;
}
- case WM_MOUSELEAVE:
- {
- int state = (int)SendMessageW(hWnd, BM_GETSTATE, 0, 0);
- set_button_state(hWnd, state&(~BST_HOT));
- InvalidateRect(hWnd, NULL, FALSE);
- break;
- }
case WM_MOUSEMOVE:
{
TRACKMOUSEEVENT mouse_event;
+ state = get_button_state( hWnd );
+ if ((state & BST_HOT) == 0)
+ {
+ state |= BST_HOT;
+ set_button_state(hWnd, state);
+ InvalidateRect(hWnd, NULL, TRUE);
+ }
+
mouse_event.cbSize = sizeof(TRACKMOUSEEVENT);
mouse_event.dwFlags = TME_QUERY;
- if(!TrackMouseEvent(&mouse_event) ||
!(mouse_event.dwFlags&(TME_HOVER|TME_LEAVE)))
+ if(!TrackMouseEvent(&mouse_event) ||
!(mouse_event.dwFlags&TME_LEAVE))
{
- mouse_event.dwFlags = TME_HOVER|TME_LEAVE;
+ mouse_event.dwFlags = TME_LEAVE;
mouse_event.hwndTrack = hWnd;
mouse_event.dwHoverTime = 1;
TrackMouseEvent(&mouse_event);
Modified: trunk/reactos/dll/win32/comctl32/theme_button.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/theme_b…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/theme_button.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/theme_button.c [iso-8859-1] Sat Mar 11 13:42:29 2017
@@ -117,7 +117,7 @@
GetClientRect(hwnd, &bgRect);
GetThemeBackgroundContentRect(theme, hDC, BP_PUSHBUTTON, state, &bgRect,
&textRect);
- if (prfFlag == 0 || (prfFlag & PRF_ERASEBKGND))
+ if (prfFlag == 0)
{
if (IsThemeBackgroundPartiallyTransparent(theme, BP_PUSHBUTTON, state))
DrawThemeParentBackground(hwnd, hDC, NULL);
@@ -216,7 +216,7 @@
bgRect.right = bgRect.left + sz.cx;
textRect.left = bgRect.right + 6;
- if (prfFlag == 0 || (prfFlag & PRF_ERASEBKGND))
+ if (prfFlag == 0)
{
DrawThemeParentBackground(hwnd, hDC, NULL);
}
@@ -290,7 +290,7 @@
GetThemeBackgroundContentRect(theme, hDC, BP_GROUPBOX, state, &bgRect,
&contentRect);
ExcludeClipRect(hDC, contentRect.left, contentRect.top, contentRect.right,
contentRect.bottom);
- if (prfFlag == 0 || (prfFlag & PRF_ERASEBKGND))
+ if (prfFlag == 0)
{
if (IsThemeBackgroundPartiallyTransparent(theme, BP_GROUPBOX, state))
DrawThemeParentBackground(hwnd, hDC, NULL);