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; function CheckMenuDropdown(Button: TToolButton): Boolean; virtual;
procedure ClickButton(Button: TToolButton); virtual; procedure ClickButton(Button: TToolButton); virtual;
procedure CreateWnd; override; procedure CreateWnd; override;
procedure ControlsAligned; override; procedure AlignControls(AControl: TControl; var RemainingClientRect: TRect); override;
function FindButtonFromAccel(Accel: Word): TToolButton; function FindButtonFromAccel(Accel: Word): TToolButton;
procedure FontChanged(Sender: TObject); override; procedure FontChanged(Sender: TObject); override;
procedure Loaded; override; procedure Loaded; override;

View File

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