Qt5,Qt6: fixed painting in designer when using docked form designer. issue #41640

This commit is contained in:
zeljan1 2025-05-14 13:17:17 +02:00
parent b83ff6e8b4
commit 26266caedc
4 changed files with 30 additions and 0 deletions

View File

@ -329,6 +329,7 @@ const
// combobox OnCloseUp should be in order OnChange->OnSelect->OnCloseUp
LCLQt_ComboBoxCloseUp = QEventType(Ord(QEventUser) + $1012);
LCLQt_DestroyWidget = QEventType(Ord(QEventUser) + $1013);
LCLQt_DesignerUpdate = QEventType(Ord(QEventUser) + $1014);
QtTextSingleLine = $0100;

View File

@ -20307,6 +20307,7 @@ var
YStep, XStep: integer;
B: Boolean;
Bar: TQtScrollBar;
ALCLEvent: QLCLMessageEventH;
function FindScrolledParent(AControl: TWinControl): TWinControl;
begin
@ -20512,9 +20513,22 @@ begin
end;
QEventPaint:
begin
if Assigned(LCLObject) and (LCLObject.Parent <> nil) and Assigned(FMenuBar) and
FMenuBar.FVisible then
begin
QPaintEvent_rect(QPaintEventH(Event), @R);
if (R.Width < QWidget_width(FDesignControl)) or
(R.Height < QWidget_height(FDesignControl)) then
begin
ALCLEvent := QLCLMessageEvent_create(LCLQt_DesignerUpdate, 0, 0, 0, 0);
QCoreApplication_postEvent(FDesignControl, ALCLEvent, Ord(QtHighEventPriority));
exit(True);
end;
end;
SlotDesignControlPaint(Sender, Event);
Result := True;
end;
LCLQt_DesignerUpdate: QWidget_update(FDesignControl);
QEventContextMenu: SlotContextMenu(Sender, Event);
end;
finally

View File

@ -334,6 +334,7 @@ const
// combobox OnCloseUp should be in order OnChange->OnSelect->OnCloseUp
LCLQt_ComboBoxCloseUp = QEventType(Ord(QEventUser) + $1012);
LCLQt_DestroyWidget = QEventType(Ord(QEventUser) + $1013);
LCLQt_DesignerUpdate = QEventType(Ord(QEventUser) + $1014);
QtTextSingleLine = $0100;

View File

@ -20232,6 +20232,7 @@ var
YStep, XStep: integer;
B: Boolean;
Bar: TQtScrollBar;
ALCLEvent: QLCLMessageEventH;
function FindScrolledParent(AControl: TWinControl): TWinControl;
begin
@ -20437,9 +20438,22 @@ begin
end;
QEventPaint:
begin
if Assigned(LCLObject) and (LCLObject.Parent <> nil) and Assigned(FMenuBar) and
FMenuBar.FVisible then
begin
QPaintEvent_rect(QPaintEventH(Event), @R);
if (R.Width < QWidget_width(FDesignControl)) or
(R.Height < QWidget_height(FDesignControl)) then
begin
ALCLEvent := QLCLMessageEvent_create(LCLQt_DesignerUpdate, 0, 0, 0, 0);
QCoreApplication_postEvent(FDesignControl, ALCLEvent, Ord(QtHighEventPriority));
exit(True);
end;
end;
SlotDesignControlPaint(Sender, Event);
Result := True;
end;
LCLQt_DesignerUpdate: QWidget_update(FDesignControl);
QEventContextMenu: SlotContextMenu(Sender, Event);
end;
finally