diff --git a/lcl/interfaces/qt/qtprivate.pp b/lcl/interfaces/qt/qtprivate.pp index 1332bd85ad..7c7bda4b66 100644 --- a/lcl/interfaces/qt/qtprivate.pp +++ b/lcl/interfaces/qt/qtprivate.pp @@ -604,13 +604,21 @@ begin end; procedure TQtComboStrings.Clear; +var + AText: WideString; begin inherited Clear; if Assigned(FWinControl) and (FWinControl.HandleAllocated) then begin FOwner.BeginUpdate; + if FOwner.getEditable then + AText := FOwner.LineEdit.getText + else + AText := ''; FOwner.ClearItems; + if (AText <> '') then + FOwner.setText(AText); FOwner.EndUpdate; end; end; diff --git a/lcl/interfaces/qt5/qtprivate.pp b/lcl/interfaces/qt5/qtprivate.pp index f8529fa59a..dedbb7ea5b 100644 --- a/lcl/interfaces/qt5/qtprivate.pp +++ b/lcl/interfaces/qt5/qtprivate.pp @@ -605,13 +605,21 @@ begin end; procedure TQtComboStrings.Clear; +var + AText: WideString; begin inherited Clear; if Assigned(FWinControl) and (FWinControl.HandleAllocated) then begin FOwner.BeginUpdate; + if FOwner.getEditable then + AText := FOwner.LineEdit.getText + else + AText := ''; FOwner.ClearItems; + if (AText <> '') then + FOwner.setText(AText); FOwner.EndUpdate; end; end; diff --git a/lcl/interfaces/qt6/qtprivate.pp b/lcl/interfaces/qt6/qtprivate.pp index a4edd64c2c..7d1da20aa6 100644 --- a/lcl/interfaces/qt6/qtprivate.pp +++ b/lcl/interfaces/qt6/qtprivate.pp @@ -608,13 +608,21 @@ begin end; procedure TQtComboStrings.Clear; +var + AText: WideString; begin inherited Clear; if Assigned(FWinControl) and (FWinControl.HandleAllocated) then begin FOwner.BeginUpdate; + if FOwner.getEditable then + AText := FOwner.LineEdit.getText + else + AText := ''; FOwner.ClearItems; + if (AText <> '') then + FOwner.setText(AText); FOwner.EndUpdate; end; end;