Qt: do not pass maximum value by triggering scrollbar actions. issue #20127

git-svn-id: trunk@52151 -
This commit is contained in:
zeljko 2016-04-09 08:16:14 +00:00
parent 7ffbcd7764
commit 8977b0ad0c
2 changed files with 14 additions and 1 deletions

View File

@ -9142,6 +9142,8 @@ begin
LMScroll.ScrollCode := SB_LINERIGHT
else
LMScroll.ScrollCode := SB_LINEDOWN;
if (FOwner = nil) and (getSliderPosition + 1 >= getMax) then
LMScroll.ScrollCode := SB_ENDSCROLL;
end;
QAbstractSliderSliderSingleStepSub:
begin
@ -9156,6 +9158,8 @@ begin
LMScroll.ScrollCode := SB_PAGERIGHT
else
LMScroll.ScrollCode := SB_PAGEDOWN;
if (FOwner = nil) and (getSliderPosition + 1 >= getMax) then
LMScroll.ScrollCode := SB_ENDSCROLL;
end;
QAbstractSliderSliderPageStepSub:
begin
@ -9186,6 +9190,8 @@ begin
LMScroll.ScrollCode := SB_RIGHT
else
LMScroll.ScrollCode := SB_BOTTOM;
if (FOwner = nil) and (getSliderPosition + 1 >= getMax) then
LMScroll.ScrollCode := SB_ENDSCROLL;
end;
QAbstractSliderSliderMove:
begin
@ -9194,6 +9200,8 @@ begin
else
if not getSliderDown then
LMScroll.ScrollCode := SB_THUMBPOSITION;
if (FOwner = nil) and (getSliderPosition + 1 >= getMax) then
LMScroll.ScrollCode := SB_ENDSCROLL;
end;
end;

View File

@ -374,7 +374,12 @@ begin
QtScrollBar.setSingleStep((AScrollBar.PageSize div 6) + 1);
end;
if QtScrollbar.getValue <> AScrollBar.Position then
QtScrollBar.setValue(AScrollBar.Position);
begin
if AScrollBar.Position > QtScrollBar.getMax then
QtScrollBar.setValue(QtScrollBar.getMax)
else
QtScrollBar.setValue(AScrollBar.Position);
end;
case AScrollBar.Kind of
sbHorizontal: