Qt: do not scroll scrollable form if scrollbars aren't visible.

git-svn-id: trunk@44503 -
This commit is contained in:
zeljko 2014-03-24 11:05:49 +00:00
parent 5deb6a8715
commit 98a3e1a08c
2 changed files with 11 additions and 2 deletions

View File

@ -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),

View File

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