From ad8b5a310d3ba158f3c36aafd47d9b04722f3dd2 Mon Sep 17 00:00:00 2001 From: zeljko Date: Mon, 12 Mar 2012 09:39:00 +0000 Subject: [PATCH] Qt: update cached FScrollY and FScrollX when value of scrollbar is changed. git-svn-id: trunk@35900 - --- lcl/interfaces/qt/qtwidgets.pas | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index b132d1a8ee..074b521ff2 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -7239,7 +7239,8 @@ var b: Boolean; begin {$ifdef VerboseQt} - writeln('TQtAbstractSlider.SlotValueChanged() to value ',p1,' inUpdate ',inUpdate,' maxIs ',getMax); + writeln('TQtAbstractSlider.SlotValueChanged() to value ',p1,' inUpdate ',inUpdate,' maxIs ',getMax, + ' FChildOfComplexWidget ',FChildOfComplexWidget); {$endif} FillChar(LMScroll, SizeOf(LMScroll), #0); @@ -7254,6 +7255,15 @@ begin LMScroll.Pos := p1; LMScroll.ScrollCode := SIF_POS; + if (FChildOfComplexWidget = ccwAbstractScrollArea) and Assigned(FOwner) and + (FOwner.ChildOfComplexWidget = ccwScrollingWinControl) then + begin + if LMScroll.Msg = LM_VSCROLL then + TQtCustomControl(FOwner).viewport.FScrollY := -p1 + else + TQtCustomControl(FOwner).viewport.FScrollX := -p1; + end; + if not InUpdate then DeliverMessage(LMScroll);