From 2140309105d45f3a366831be871ccce111583411 Mon Sep 17 00:00:00 2001 From: zeljko Date: Sat, 11 Apr 2020 10:17:13 +0000 Subject: [PATCH] Qt5: apply beginUpdate & endUpdate to the scrollArea of TQtMainWindow. git-svn-id: trunk@62940 - --- lcl/interfaces/qt5/qtwidgets.pas | 63 +++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/lcl/interfaces/qt5/qtwidgets.pas b/lcl/interfaces/qt5/qtwidgets.pas index 666546e4c4..0db3b19cc0 100644 --- a/lcl/interfaces/qt5/qtwidgets.pas +++ b/lcl/interfaces/qt5/qtwidgets.pas @@ -663,6 +663,10 @@ type ScrollArea: TQtWindowArea; {$ENDIF} destructor Destroy; override; + + procedure BeginUpdate; override; + procedure EndUpdate; override; + procedure Activate; override; function CanAdjustClientRectOnResize: Boolean; override; function getAcceptDropFiles: Boolean; override; @@ -6814,6 +6818,28 @@ begin QEventMouseButtonDblClick, QEventMouseMove, QEventWheel, QEventPaint, QEventHoverEnter, QEventHoverMove, QEventHoverLeave, QEventResize]) then exit; + + {$IF DEFINED(VerboseQt) OR DEFINED(VerboseQtEvents)} + if (QEvent_type(Event)=QEventWindowActivate) or + (QEvent_type(Event)=QEventWindowDeactivate) or + (QEvent_type(Event)=QEventShow) or + (QEvent_type(Event)=QEventShowToParent) or + (QEvent_type(Event)=QEventShowWindowRequest) or + (QEvent_type(Event)=QEventResize) or + (QEvent_type(Event)=QEventContentsRectChange) or + (QEvent_type(Event)=QEventUpdateLater) or + (QEvent_type(Event)=QEventUpdateRequest) or + (QEvent_type(Event)=QEventPaint) or + (QEvent_type(Event)=QEventWinIdChange) or + (QEvent_type(Event)=QEventExpose) or + (QEvent_type(Event)=QEventWindowTitleChange) or + (QEvent_type(Event)=QEventActivationChange) or + (QEvent_type(Event)=QEventWindowStateChange) then + WriteLn(' TQtWindowArea.EventFilter: Sender=', IntToHex(PtrUInt(Sender),8), + ' LCLObject=', dbgsName(LCLObject), + ' Event=', EventTypeToStr(Event),' inUpdate=',inUpdate); + {$endif} + Result := inherited EventFilter(Sender, Event); end; @@ -6822,11 +6848,32 @@ function TQtWindowArea.ScrollViewEventFilter(Sender: QObjectH; Event: QEventH var ASize: TSize; AResizeEvent: QResizeEventH; - ScrollBar: QScrollBarH; begin Result := False; if LCLObject = nil then exit; + + {$IF DEFINED(VerboseQt) OR DEFINED(VerboseQtEvents)} + if (QEvent_type(Event)=QEventWindowActivate) or + (QEvent_type(Event)=QEventWindowDeactivate) or + (QEvent_type(Event)=QEventShow) or + (QEvent_type(Event)=QEventShowToParent) or + (QEvent_type(Event)=QEventShowWindowRequest) or + (QEvent_type(Event)=QEventResize) or + (QEvent_type(Event)=QEventContentsRectChange) or + (QEvent_type(Event)=QEventUpdateLater) or + (QEvent_type(Event)=QEventUpdateRequest) or + (QEvent_type(Event)=QEventPaint) or + (QEvent_type(Event)=QEventWinIdChange) or + (QEvent_type(Event)=QEventExpose) or + (QEvent_type(Event)=QEventWindowTitleChange) or + (QEvent_type(Event)=QEventActivationChange) or + (QEvent_type(Event)=QEventWindowStateChange) then + WriteLn(' TQtWindowAreaViewport.EventFilter: Sender=', IntToHex(PtrUInt(Sender),8), + ' LCLObject=', dbgsName(LCLObject), + ' Event=', EventTypeToStr(Event),' inUpdate=',inUpdate); + {$endif} + BeginEventProcessing; try if (QEvent_Type(Event) in [QEventContextMenu, QEventHoverEnter, QEventPaint, @@ -7138,6 +7185,20 @@ begin inherited Destroy; end; +procedure TQtMainWindow.BeginUpdate; +begin + inherited BeginUpdate; + if Assigned(ScrollArea) then + ScrollArea.BeginUpdate; +end; + +procedure TQtMainWindow.EndUpdate; +begin + if Assigned(ScrollArea) then + ScrollArea.EndUpdate; + inherited EndUpdate; +end; + procedure TQtMainWindow.Activate; begin if IsMDIChild then