diff --git a/lcl/interfaces/carbon/carbonprivatewindow.inc b/lcl/interfaces/carbon/carbonprivatewindow.inc index 7699d8ca40..80cf4703ac 100644 --- a/lcl/interfaces/carbon/carbonprivatewindow.inc +++ b/lcl/interfaces/carbon/carbonprivatewindow.inc @@ -314,12 +314,15 @@ begin end; // interactive design - if (Widget is TCarbonDesignWindow) and (GetCarbonMouseButton(AEvent) = 1) and - (EventKind = kEventMouseDown) then + if (EventKind = kEventMouseDown) + and ((csDesigning in Widget.LCLObject.ComponentState) or (Widget is TCarbonDesignWindow)) + and (GetCarbonMouseButton(AEvent) = 1) then begin P := GetMousePoint; DesignControl := Widget.LCLObject.ControlAtPos(P, [capfAllowDisabled, capfAllowWinControls, capfRecursive]); + if DesignControl = nil then + DesignControl := Widget.LCLObject; if DesignControl is TWinControl then begin @@ -1680,7 +1683,8 @@ procedure TCarbonWindow.CloseModal; begin if not Assigned(fWindowRef) then Exit; // not possible to show modal if not Window mode - CarbonWidgetSet.SetMainMenuEnabled(True); + if CarbonWidgetSet.MainMenu <> (LCLObject as TCustomForm).Menu then + CarbonWidgetSet.SetMainMenuEnabled(True); OSError( SetWindowModality(fWindowRef, kWindowModalityNone, nil), diff --git a/lcl/interfaces/carbon/carbontabs.pp b/lcl/interfaces/carbon/carbontabs.pp index d410e12ba3..d15f72e4a3 100644 --- a/lcl/interfaces/carbon/carbontabs.pp +++ b/lcl/interfaces/carbon/carbontabs.pp @@ -378,7 +378,7 @@ begin OSError( CreateDisclosureTriangleControl(GetTopParentWindow, GetCarbonRect(GetPrevArrowBounds(R)), - kControlDisclosureTrianglePointLeft, nil, 0, False, False, FPrevArrow), + kControlDisclosureTrianglePointRight, nil, 0, False, False, FPrevArrow), Self, SCreateWidget, 'CreatePopupArrowControl'); OSError(HIViewSetVisible(FPrevArrow, False), Self, SCreateWidget, SViewVisible); OSError(HIViewAddSubview(Widget, FPrevArrow), Self, SCreateWidget,