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);