From 98a3e1a08cce7576fc34dbb5b4580d3ed4c073c3 Mon Sep 17 00:00:00 2001 From: zeljko Date: Mon, 24 Mar 2014 11:05:49 +0000 Subject: [PATCH] Qt: do not scroll scrollable form if scrollbars aren't visible. git-svn-id: trunk@44503 - --- lcl/interfaces/qt/qtwidgets.pas | 2 +- lcl/interfaces/qt/qtwsforms.pp | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index 6d5be39ce0..5730e81553 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -8076,7 +8076,7 @@ begin if (QEvent_type(Event) = QEventKeyRelease) and not (QKeyEvent_isAutoRepeat(QKeyEventH(event))) then begin - Case QKeyEvent_key(QKeyEventH(Event)) of + case QKeyEvent_key(QKeyEventH(Event)) of QtKey_Left, QtKey_Up, QtKey_Right, QtKey_Down, QtKey_PageUp, QtKey_PageDown, QtKey_Home, QtKey_End: QAbstractSlider_triggerAction(QAbstractSliderH(Widget), diff --git a/lcl/interfaces/qt/qtwsforms.pp b/lcl/interfaces/qt/qtwsforms.pp index 9b184c9682..724b36fef9 100644 --- a/lcl/interfaces/qt/qtwsforms.pp +++ b/lcl/interfaces/qt/qtwsforms.pp @@ -266,6 +266,7 @@ class procedure TQtWSCustomForm.ScrollBy( {$IFDEF QTSCROLLABLEFORMS} var Widget: TQtMainWindow; + X, Y: Integer; {$ENDIF} begin {$IFDEF QTSCROLLABLEFORMS} @@ -273,7 +274,15 @@ begin Exit; Widget := TQtMainWindow(AWinControl.Handle); if Assigned(Widget.ScrollArea) then - Widget.ScrollArea.scroll(DeltaX, DeltaY); + begin + X := DeltaX; + Y := DeltaY; + if (X <> 0) and not Widget.ScrollArea.horizontalScrollBar.getVisible then + X := 0; + if (Y <> 0) and not Widget.ScrollArea.verticalScrollBar.getVisible then + Y := 0; + Widget.ScrollArea.scroll(X, Y); + end; {$ENDIF} end;