LCL, Toolbar: fix CalculatePreferredSize to honour constraints

This commit is contained in:
Martin 2024-12-28 18:29:32 +01:00
parent 924ce02d50
commit d9a5787be8

View File

@ -605,31 +605,26 @@ end;
procedure TToolBar.CalculatePreferredSize(var PreferredWidth,
PreferredHeight: integer; WithThemeSpace: Boolean);
var
NewWidth: Integer;
NewHeight: Integer;
FixedWidth: Boolean;
AWidth: Integer;
NewWidth, NewHeight: Integer;
begin
NewWidth:=0;
NewHeight:=0;
FixedWidth:=false;
if (Parent<>nil)
and (not Parent.AutoSize)
and AnchorSideLeft.IsAnchoredToParent(akLeft)
and AnchorSideRight.IsAnchoredToParent(akRight) then begin
// the width depends on the parent
// the width is fixed
FixedWidth:=true;
WrapButtons(Width, NewWidth, NewHeight, True);
PreferredWidth := NewWidth;
PreferredHeight := NewHeight;
//DebugLn(['TToolBar.CalculatePreferredSize fixed width: ',PreferredWidth,'x',PreferredHeight]);
end;
if not FixedWidth then begin
WrapButtons(Screen.Width,NewWidth,NewHeight,true);
PreferredWidth := NewWidth;
PreferredHeight := NewHeight;
AWidth:=Constraints.MinMaxWidth(Width);
end
else begin
AWidth:=Constraints.MinMaxWidth(Screen.Width);
end;
WrapButtons(AWidth,NewWidth,NewHeight,true);
PreferredWidth := NewWidth;
PreferredHeight := NewHeight;
//DebugLn(['TToolBar.CalculatePreferredSize ',DbgSName(Self),' ',PreferredWidth,'x',PreferredHeight,' Count=',ControlCount]);
end;