From f6fe5420e01608fb998d659affca7a367f27e67a Mon Sep 17 00:00:00 2001 From: zeljko Date: Thu, 4 Oct 2007 16:31:14 +0000 Subject: [PATCH] Qt: Fixed crash on initialization of viewport. git-svn-id: trunk@12314 - --- lcl/interfaces/qt/qtwidgets.pas | 12 +++++------- lcl/interfaces/qt/qtwscontrols.pp | 6 ++++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index 0d377689a4..f8093b5157 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -6405,12 +6405,11 @@ function TQtViewPort.EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cde var R: TRect; begin - case QEvent_type(Event) of QEventResize: Result := False; QEventLayoutRequest: begin - {TODO: do something here } + {TODO: something here (maybe) } Result := False; end; else @@ -6457,17 +6456,16 @@ end; function TQtAbstractScrollArea.EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; begin case QEvent_type(Event) of - QEventPaint: Result := False; - QEventResize, + QEventPaint, + QEventLayoutRequest: Result := False; QEventMouseButtonPress, QEventMouseButtonRelease, QEventMouseButtonDblClick, - QEventWheel, - QEventLayoutRequest: + QEventWheel: begin Result := False; if QEvent_spontaneous(Event) then - ViewPortEventFilter(Event, @Result); + ViewPortEventFilter(Event, @Result); end; else Result := inherited EventFilter(Sender, Event); diff --git a/lcl/interfaces/qt/qtwscontrols.pp b/lcl/interfaces/qt/qtwscontrols.pp index b940e5ed4c..b962c73b90 100644 --- a/lcl/interfaces/qt/qtwscontrols.pp +++ b/lcl/interfaces/qt/qtwscontrols.pp @@ -148,7 +148,6 @@ begin QtAbstractScrollArea := TQtAbstractScrollArea.Create(AWinControl, AParams); QtAbstractScrollArea.setFrameShape(TBorderStyleToQtFrameShapeMap[TCustomControl(AWinControl).BorderStyle]); QtAbstractScrollArea.AttachEvents; - QtAbstractScrollArea.viewportNeeded; Result := THandle(QtAbstractScrollArea); {$ifdef VerboseQt} @@ -172,9 +171,12 @@ begin if not WSCheckHandleAllocated(AWinControl, 'ShowHide') then Exit; + Widget := TQtWidget(AWinControl.Handle); + + if Widget is TQtAbstractScrollArea then + TQtAbstractScrollArea(Widget).viewportNeeded; - // if the widget is a form, this is a place to set the Tab order if AWinControl.HandleObjectShouldBeVisible and (Widget is TQtMainWindow) then begin if fsModal in TForm(AWinControl).FormState then