Vincent Povirk : comctl32: Do not repaint on TBM_SETPOS if position is unchanged.

Alexandre Julliard julliard at winehq.org
Mon Nov 17 09:14:22 CST 2008


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

Author: Vincent Povirk <madewokherd+d41d at gmail.com>
Date:   Sat Nov 15 21:50:54 2008 -0600

comctl32: Do not repaint on TBM_SETPOS if position is unchanged.

---

 dlls/comctl32/tests/trackbar.c |    4 ++++
 dlls/comctl32/trackbar.c       |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/dlls/comctl32/tests/trackbar.c b/dlls/comctl32/tests/trackbar.c
index f69e286..f54e32e 100644
--- a/dlls/comctl32/tests/trackbar.c
+++ b/dlls/comctl32/tests/trackbar.c
@@ -141,11 +141,13 @@ static const struct message position_test_seq[] = {
     { TBM_SETPOS, sent|wparam|lparam, TRUE, 5},
     { WM_PAINT, sent|defwinproc},
     { TBM_GETPOS, sent},
+    { TBM_SETPOS, sent|wparam|lparam, TRUE, 5},
     { TBM_SETPOS, sent|wparam|lparam, TRUE, 1000},
     { WM_PAINT, sent|defwinproc},
     { TBM_GETPOS, sent},
     { TBM_SETPOS, sent|wparam|lparam, FALSE, 20},
     { TBM_GETPOS, sent},
+    { TBM_SETPOS, sent|wparam|lparam, TRUE, 20},
     { TBM_GETPOS, sent},
     {0}
 };
@@ -605,12 +607,14 @@ static void test_position(HWND hWndTrackbar){
     SendMessage(hWndTrackbar, TBM_SETPOS, TRUE, 5);
     r = SendMessage(hWndTrackbar, TBM_GETPOS, 0,0);
     expect(5, r);
+    SendMessage(hWndTrackbar, TBM_SETPOS, TRUE, 5);
     SendMessage(hWndTrackbar, TBM_SETPOS, TRUE, 1000);
     r = SendMessage(hWndTrackbar, TBM_GETPOS, 0,0);
     expect(100, r);
     SendMessage(hWndTrackbar, TBM_SETPOS, FALSE, 20);
     r = SendMessage(hWndTrackbar, TBM_GETPOS, 0,0);
     expect(20, r);
+    SendMessage(hWndTrackbar, TBM_SETPOS, TRUE, 20);
 
     /* test TBM_GETPOS */
     r = SendMessage(hWndTrackbar, TBM_GETPOS, 0,0);
diff --git a/dlls/comctl32/trackbar.c b/dlls/comctl32/trackbar.c
index a9959e2..c72f29b 100644
--- a/dlls/comctl32/trackbar.c
+++ b/dlls/comctl32/trackbar.c
@@ -1148,7 +1148,7 @@ TRACKBAR_SetPos (TRACKBAR_INFO *infoPtr, BOOL fPosition, LONG lPosition)
 	infoPtr->lPos = infoPtr->lRangeMax;
     infoPtr->flags |= TB_THUMBPOSCHANGED;
 
-    if (fPosition) TRACKBAR_InvalidateThumbMove(infoPtr, oldPos, lPosition);
+    if (fPosition && oldPos != lPosition) TRACKBAR_InvalidateThumbMove(infoPtr, oldPos, lPosition);
 
     return 0;
 }




More information about the wine-cvs mailing list