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.c... ============================================================================== --- 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_bu... ============================================================================== --- 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);