Toolbar: TB_MARKITEM Should Redraw Button

Robert Shearman rob at codeweavers.com
Sat Aug 28 07:41:02 CDT 2004


Changelog:
TB_MARKITEM should redraw button.

-------------- next part --------------
Index: wine/dlls/comctl32/toolbar.c
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/toolbar.c,v
retrieving revision 1.187
diff -u -p -r1.187 toolbar.c
--- wine/dlls/comctl32/toolbar.c	25 Aug 2004 02:16:32 -0000	1.187
+++ wine/dlls/comctl32/toolbar.c	28 Aug 2004 12:35:51 -0000
@@ -3986,6 +3986,8 @@ TOOLBAR_MarkButton (HWND hwnd, WPARAM wP
 {
     TOOLBAR_INFO *infoPtr = TOOLBAR_GetInfoPtr (hwnd);
     INT nIndex;
+    DWORD oldState;
+    TBUTTON_INFO *btnPtr;
 
     TRACE("hwnd = %p, wParam = %d, lParam = 0x%08lx\n", hwnd, wParam, lParam);
 
@@ -3993,10 +3995,16 @@ TOOLBAR_MarkButton (HWND hwnd, WPARAM wP
     if (nIndex == -1)
         return FALSE;
 
+    btnPtr = &infoPtr->buttons[nIndex];
+    oldState = btnPtr->fsState;
+
     if (LOWORD(lParam))
-        infoPtr->buttons[nIndex].fsState |= TBSTATE_MARKED;
+        btnPtr->fsState |= TBSTATE_MARKED;
     else
-        infoPtr->buttons[nIndex].fsState &= ~TBSTATE_MARKED;
+        btnPtr->fsState &= ~TBSTATE_MARKED;
+
+    if(oldState != btnPtr->fsState)
+        InvalidateRect(hwnd, &btnPtr->rect, TRUE);
 
     return TRUE;
 }


More information about the wine-patches mailing list