Mike McCormack : comctl32: Invalidate the entire progress bar any time it changes.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Jan 11 05:35:26 CST 2006


Module: wine
Branch: refs/heads/master
Commit: ab4438e24d055b2b229b954a66f3bc3d9316c977
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=ab4438e24d055b2b229b954a66f3bc3d9316c977

Author: Mike McCormack <mike at codeweavers.com>
Date:   Wed Jan 11 12:11:46 2006 +0100

comctl32: Invalidate the entire progress bar any time it changes.

---

 dlls/comctl32/progress.c |   29 +++--------------------------
 1 files changed, 3 insertions(+), 26 deletions(-)

diff --git a/dlls/comctl32/progress.c b/dlls/comctl32/progress.c
index eb0b11a..cfed7ec 100644
--- a/dlls/comctl32/progress.c
+++ b/dlls/comctl32/progress.c
@@ -131,35 +131,12 @@ static inline int get_bar_position( PROG
 /***********************************************************************
  * PROGRESS_Invalidate
  *
- * Invalide the range between old and new pos.
+ * Don't be too clever about invalidating the progress bar.
+ * Installshield depends on this simple behaviour.
  */
 static void PROGRESS_Invalidate( PROGRESS_INFO *infoPtr, INT old, INT new )
 {
-    LONG style = GetWindowLongW (infoPtr->Self, GWL_STYLE);
-    RECT rect;
-    int oldPos, newPos;
-    BOOL barSmooth = (style & PBS_SMOOTH) && !GetWindowTheme (infoPtr->Self);
-
-    get_client_rect( infoPtr->Self, &rect );
-
-    oldPos = get_bar_position( infoPtr, style, &rect, old );
-    newPos = get_bar_position( infoPtr, style, &rect, new );
-
-    if (style & PBS_VERTICAL)
-    {
-        rect.top = rect.bottom - max( oldPos, newPos );
-        rect.bottom = rect.bottom - min( oldPos, newPos );
-        if (!barSmooth) rect.top -=
-            get_led_size (infoPtr, style, &rect) + get_led_gap (infoPtr);
-    }
-    else
-    {
-        rect.left = min( oldPos, newPos );
-        rect.right = max( oldPos, newPos );
-        if (!barSmooth) rect.right +=
-              get_led_size (infoPtr, style, &rect) + get_led_gap (infoPtr);
-    }
-    InvalidateRect( infoPtr->Self, &rect, oldPos > newPos );
+    InvalidateRect( infoPtr->Self, NULL, old > new );
 }
 
 /* Information for a progress bar drawing helper */




More information about the wine-cvs mailing list