diff --git a/lcl/interfaces/carbon/carbonprivate.pp b/lcl/interfaces/carbon/carbonprivate.pp index 1c76b36a70..1ee340f5c7 100644 --- a/lcl/interfaces/carbon/carbonprivate.pp +++ b/lcl/interfaces/carbon/carbonprivate.pp @@ -173,6 +173,8 @@ type procedure DestroyWidget; override; public + function GetPreferredSize: TPoint; override; + procedure AddToWidget(AParent: TCarbonWidget); override; function GetMousePos: TPoint; override; function GetTopParentWindow: WindowRef; override; diff --git a/lcl/interfaces/carbon/carbonprivatecontrol.inc b/lcl/interfaces/carbon/carbonprivatecontrol.inc index 09b7186460..ef1ca9f1b5 100644 --- a/lcl/interfaces/carbon/carbonprivatecontrol.inc +++ b/lcl/interfaces/carbon/carbonprivatecontrol.inc @@ -1070,6 +1070,7 @@ function TCarbonControl.GetPreferredSize: TPoint; var R: MacOSAll.Rect; S: SmallInt; + b: HIRect; begin Result.X := 0; Result.Y := 0; @@ -1078,7 +1079,7 @@ begin if OSError(GetBestControlRect(ControlRef(Widget), R, S), Self, 'GetPreferredSize', 'GetBestControlRect') then Exit; - + Result.X := R.right - R.left; Result.Y := R.bottom - R.top; end; diff --git a/lcl/interfaces/carbon/carbonprivatewindow.inc b/lcl/interfaces/carbon/carbonprivatewindow.inc index 22fadfdbb6..8b5c07ae2d 100644 --- a/lcl/interfaces/carbon/carbonprivatewindow.inc +++ b/lcl/interfaces/carbon/carbonprivatewindow.inc @@ -1242,6 +1242,16 @@ begin //Widget := nil; end; +function TCarbonWindow.GetPreferredSize: TPoint; +const + MinWinSize = 20; +begin + //todo: find a proper way to determine prefered window size + // by default Carbon returns a height too large + Result.x:=MinWinSize; + Result.y:=MinWinSize; +end; + {------------------------------------------------------------------------------ Method: TCarbonWindow.AddToWidget Params: AParent - Parent widget