diff --git a/lcl/comctrls.pp b/lcl/comctrls.pp index fa02f1440e..69dcaee2aa 100644 --- a/lcl/comctrls.pp +++ b/lcl/comctrls.pp @@ -1234,6 +1234,7 @@ type function GetItem(const AIndex: Integer): TListColumn; procedure WSCreateColumns; procedure SetItem(const AIndex: Integer; const AValue: TListColumn); + procedure DoFinalizeWnd; protected function GetOwner: TPersistent; override; public diff --git a/lcl/include/customlistview.inc b/lcl/include/customlistview.inc index 21e071e850..a1982ad61a 100644 --- a/lcl/include/customlistview.inc +++ b/lcl/include/customlistview.inc @@ -1154,6 +1154,7 @@ begin FViewOriginCache := TWSCustomListViewClass(WidgetSetClass).GetViewOrigin(Self); if not OwnerData then FListItems.DoFinalizeWnd; + Columns.DoFinalizeWnd; inherited FinalizeWnd; end; diff --git a/lcl/include/listcolumns.inc b/lcl/include/listcolumns.inc index 7570a5b6bf..1c13dc06a2 100644 --- a/lcl/include/listcolumns.inc +++ b/lcl/include/listcolumns.inc @@ -62,6 +62,14 @@ begin EndUpdate; end; +procedure TListColumns.DoFinalizeWnd; +var + I: Integer; +begin + for I := 0 to Count-1 do + Items[I].GetWidth; // store real width from WS into FWidth +end; + procedure TListColumns.Update(Item: TCollectionItem); begin if (Item = nil) and FNeedsUpdate then