From 1afac02c06f24bc3753ca67d0865d0e3a1c2e441 Mon Sep 17 00:00:00 2001 From: dmitry Date: Mon, 29 Jun 2009 12:42:31 +0000 Subject: [PATCH] carbon: workaround for #12490. needs further investigation git-svn-id: trunk@20763 - --- lcl/interfaces/carbon/carbonprivate.pp | 2 ++ lcl/interfaces/carbon/carbonprivatecontrol.inc | 3 ++- lcl/interfaces/carbon/carbonprivatewindow.inc | 10 ++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) 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