Merged revision(s) 57674 #f620b70d6d from trunk:

LCL: toolbar: fix endless align/autosize loop. Issue #33575
........

git-svn-id: branches/fixes_1_8@57937 -
This commit is contained in:
maxim 2018-05-14 22:37:55 +00:00
parent f90df6a99f
commit a03b5355f8
2 changed files with 6 additions and 2 deletions

View File

@ -2245,7 +2245,7 @@ type
function CheckMenuDropdown(Button: TToolButton): Boolean; virtual;
procedure ClickButton(Button: TToolButton); virtual;
procedure CreateWnd; override;
procedure ControlsAligned; override;
procedure AlignControls(AControl: TControl; var RemainingClientRect: TRect); override;
function FindButtonFromAccel(Accel: Word): TToolButton;
procedure FontChanged(Sender: TObject); override;
procedure Loaded; override;

View File

@ -150,19 +150,23 @@ begin
end;
end;
procedure TToolBar.ControlsAligned;
procedure TToolBar.AlignControls(AControl: TControl;
var RemainingClientRect: TRect);
var
NewWidth, NewHeight: integer;
begin
if tbfPlacingControls in FToolBarFlags then exit;
Include(FToolBarFlags, tbfPlacingControls);
DisableAlign;
try
AdjustClientRect(RemainingClientRect);
if IsVertical then
WrapButtons(Height, NewWidth, NewHeight, False)
else
WrapButtons(Width, NewWidth, NewHeight, False);
finally
Exclude(FToolBarFlags, tbfPlacingControls);
EnableAlign;
end;
end;