Alexandre Julliard : comctl32/pager: Fix tracking of mouse position inside the buttons.
Alexandre Julliard
julliard at winehq.org
Tue Nov 20 13:52:23 CST 2012
Module: wine
Branch: master
Commit: 7a78eed463903639f39458b23b6e8403963f8367
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7a78eed463903639f39458b23b6e8403963f8367
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Nov 20 16:02:09 2012 +0100
comctl32/pager: Fix tracking of mouse position inside the buttons.
---
dlls/comctl32/pager.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/comctl32/pager.c b/dlls/comctl32/pager.c
index c270723..d541374 100644
--- a/dlls/comctl32/pager.c
+++ b/dlls/comctl32/pager.c
@@ -314,9 +314,10 @@ PAGER_UpdateBtns(PAGER_INFO *infoPtr, INT scrollRange, BOOL hideGrayBtns)
RECT rcTopLeft, rcBottomRight;
/* get button rects */
- PAGER_GetButtonRects(infoPtr, &rcTopLeft, &rcBottomRight, FALSE);
+ PAGER_GetButtonRects(infoPtr, &rcTopLeft, &rcBottomRight, TRUE);
GetCursorPos(&pt);
+ ScreenToClient( infoPtr->hwndSelf, &pt );
/* update states based on scroll position */
if (infoPtr->nPos > 0)
@@ -324,7 +325,7 @@ PAGER_UpdateBtns(PAGER_INFO *infoPtr, INT scrollRange, BOOL hideGrayBtns)
if (infoPtr->TLbtnState == PGF_INVISIBLE || infoPtr->TLbtnState == PGF_GRAYED)
infoPtr->TLbtnState = PGF_NORMAL;
}
- else if (PtInRect(&rcTopLeft, pt))
+ else if (!hideGrayBtns && PtInRect(&rcTopLeft, pt))
infoPtr->TLbtnState = PGF_GRAYED;
else
infoPtr->TLbtnState = PGF_INVISIBLE;
@@ -339,7 +340,7 @@ PAGER_UpdateBtns(PAGER_INFO *infoPtr, INT scrollRange, BOOL hideGrayBtns)
if (infoPtr->BRbtnState == PGF_INVISIBLE || infoPtr->BRbtnState == PGF_GRAYED)
infoPtr->BRbtnState = PGF_NORMAL;
}
- else if (PtInRect(&rcBottomRight, pt))
+ else if (!hideGrayBtns && PtInRect(&rcBottomRight, pt))
infoPtr->BRbtnState = PGF_GRAYED;
else
infoPtr->BRbtnState = PGF_INVISIBLE;
More information about the wine-cvs
mailing list