mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 02:40:03 +02:00
parent
65d0d8bd24
commit
0d3bcfd192
@ -5652,7 +5652,19 @@ end;
|
||||
|
||||
function TQtTabWidget.EventFilter(Sender: QObjectH; Event: QEventH): Boolean;
|
||||
cdecl;
|
||||
var
|
||||
w: QWidgetH;
|
||||
ResizeEvent: QResizeEventH;
|
||||
i: Integer;
|
||||
NewSize: TSize;
|
||||
OldSize: TSize;
|
||||
begin
|
||||
|
||||
Result := False;
|
||||
QEvent_accept(Event);
|
||||
if LCLObject = nil then
|
||||
exit;
|
||||
|
||||
BeginEventProcessing;
|
||||
if (Sender = TabBar) then
|
||||
begin
|
||||
@ -5671,6 +5683,28 @@ begin
|
||||
end;
|
||||
end else
|
||||
begin
|
||||
{qt doesn't call resize for inactive pages, so LCL don't know
|
||||
about changes on inactive pages, we must send resizeEvent to
|
||||
all pages except for active one.This is fix for #13018}
|
||||
if QEvent_type(Event) = QEventResize then
|
||||
begin
|
||||
w := QTabWidget_currentWidget(QTabWidgetH(Widget));
|
||||
if w <> nil then
|
||||
begin
|
||||
QWidget_size(w, @NewSize);
|
||||
OldSize.Cx := 0;
|
||||
OldSize.Cy := 0;
|
||||
for i := 0 to QTabWidget_count(QTabWidgetH(Widget)) - 1 do
|
||||
begin
|
||||
w := QTabWidget_widget(QTabWidgetH(Widget), i);
|
||||
if w <> QTabWidget_currentWidget(QTabWidgetH(Widget)) then
|
||||
begin
|
||||
ResizeEvent := QResizeEvent_create(@NewSize, @OldSize);
|
||||
QCoreApplication_postEvent(w, ResizeEvent, 1);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
Result := inherited EventFilter(Sender, Event);
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user