Aled Hughes : comctl32/toolbar: Avoid unnecessary invalidation on TB_HIDEBUTTON.

Alexandre Julliard julliard at winehq.org
Mon Aug 3 11:15:03 CDT 2009


Module: wine
Branch: master
Commit: 85abd4c3cfdc21dd614b00bc02697610c13d9651
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=85abd4c3cfdc21dd614b00bc02697610c13d9651

Author: Aled Hughes <winehq at aledhughes.co.uk>
Date:   Mon Aug  3 01:52:51 2009 +0400

comctl32/toolbar: Avoid unnecessary invalidation on TB_HIDEBUTTON.

---

 dlls/comctl32/toolbar.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index 0d11b2b..d95dc7d 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -3633,6 +3633,7 @@ static LRESULT
 TOOLBAR_HideButton (TOOLBAR_INFO *infoPtr, INT Id, BOOL fHide)
 {
     TBUTTON_INFO *btnPtr;
+    BYTE oldState;
     INT nIndex;
 
     TRACE("\n");
@@ -3642,15 +3643,17 @@ TOOLBAR_HideButton (TOOLBAR_INFO *infoPtr, INT Id, BOOL fHide)
 	return FALSE;
 
     btnPtr = &infoPtr->buttons[nIndex];
+    oldState = btnPtr->fsState;
 
     if (fHide)
 	btnPtr->fsState |= TBSTATE_HIDDEN;
     else
 	btnPtr->fsState &= ~TBSTATE_HIDDEN;
 
-    TOOLBAR_LayoutToolbar (infoPtr);
-
-    InvalidateRect (infoPtr->hwndSelf, NULL, TRUE);
+    if (oldState != btnPtr->fsState) {
+        TOOLBAR_LayoutToolbar (infoPtr);
+        InvalidateRect (infoPtr->hwndSelf, NULL, TRUE);
+    }
 
     return TRUE;
 }




More information about the wine-cvs mailing list