mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 18:19:08 +02:00
lcl: TWinControl: apply framewidth/height only to preferred clientarea, not to widget, bug #27538
git-svn-id: trunk@48017 -
This commit is contained in:
parent
59217ce6db
commit
673f7ce527
@ -7987,7 +7987,7 @@ procedure TWinControl.CalculatePreferredSize(var PreferredWidth,
|
|||||||
|
|
||||||
function IsVerbose: boolean;
|
function IsVerbose: boolean;
|
||||||
begin
|
begin
|
||||||
Result:=(ClassName='TShowCompilerOptionsDlg') or (Name='CmdLineMemo');
|
Result:=(Name='Edit1');
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
@ -8026,6 +8026,9 @@ begin
|
|||||||
Layout.Free;
|
Layout.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// add clientarea frame
|
||||||
|
GetPreferredSizeClientFrame(FrameWidth,FrameHeight);
|
||||||
|
|
||||||
{$IF defined(VerboseAutoSize) or defined(VerboseAllAutoSize) or defined(VerboseCalculatePreferredSize)}
|
{$IF defined(VerboseAutoSize) or defined(VerboseAllAutoSize) or defined(VerboseCalculatePreferredSize)}
|
||||||
{$IFDEF VerboseCalculatePreferredSize}
|
{$IFDEF VerboseCalculatePreferredSize}
|
||||||
if IsVerbose then
|
if IsVerbose then
|
||||||
@ -8039,15 +8042,12 @@ begin
|
|||||||
' Client=',ClientWidth,'x',ClientHeight,
|
' Client=',ClientWidth,'x',ClientHeight,
|
||||||
' PrefClient=',NewClientWidth,'x',NewClientHeight]);
|
' PrefClient=',NewClientWidth,'x',NewClientHeight]);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
PreferredWidth:=Max(PreferredWidth,NewClientWidth);
|
if NewClientWidth>0 then
|
||||||
PreferredHeight:=Max(PreferredHeight,NewClientHeight);
|
PreferredWidth:=Max(PreferredWidth,NewClientWidth+FrameWidth);
|
||||||
|
if NewClientHeight>0 then
|
||||||
|
PreferredHeight:=Max(PreferredHeight,NewClientHeight+FrameHeight);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// add clientarea frame
|
|
||||||
GetPreferredSizeClientFrame(FrameWidth,FrameHeight);
|
|
||||||
PreferredWidth+=Max(0,FrameWidth);
|
|
||||||
PreferredHeight+=Max(0,FrameHeight);
|
|
||||||
|
|
||||||
// add borderspacing
|
// add borderspacing
|
||||||
if (PreferredWidth>0)
|
if (PreferredWidth>0)
|
||||||
or ((PreferredWidth=0) and (csAutoSize0x0 in ControlStyle)) then
|
or ((PreferredWidth=0) and (csAutoSize0x0 in ControlStyle)) then
|
||||||
|
Loading…
Reference in New Issue
Block a user