From eb70a1aff6647841308cbbb6fb289fee45f4dfb9 Mon Sep 17 00:00:00 2001 From: dmitry Date: Fri, 7 Dec 2018 03:29:11 +0000 Subject: [PATCH] cocoa: update removal of menuItems. Removing an item from parent menu rather than from parentItem's menu. #34602 git-svn-id: trunk@59752 - --- lcl/interfaces/cocoa/cocoawsmenus.pas | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/lcl/interfaces/cocoa/cocoawsmenus.pas b/lcl/interfaces/cocoa/cocoawsmenus.pas index c6c3791357..8ac6f5ebd6 100644 --- a/lcl/interfaces/cocoa/cocoawsmenus.pas +++ b/lcl/interfaces/cocoa/cocoawsmenus.pas @@ -569,29 +569,28 @@ class procedure TCocoaWSMenuItem.DestroyHandle(const AMenuItem: TMenuItem); var callback: IMenuItemCallback; callbackObject: TObject; - item : NSObject; - parItem : NSObject; + item : NSObject; + menuitem : TCocoaMenuItem; begin if AMenuItem.Caption <> '-' then - begin + begin item:=NSObject(AMenuItem.Handle); if item.isKindOfClass_(TCocoaMenuItem) then - begin - callback := TCocoaMenuItem(item).lclGetCallback; + begin + menuitem := TCocoaMenuItem(item); + callback := menuitem.lclGetCallback; if Assigned(callback) then - begin + begin callbackObject := callback.GetCallbackObject; callback := nil; - TCocoaMenuItem(item).lclClearCallback; + menuitem.lclClearCallback; callbackObject.Free; - end; - parItem := TCocoaMenuItem(Item).parentItem; - if assigned(parItem) and parItem.isKindOfClass_(NSMenuItem) then - NSMenuItem(paritem).submenu.removeItem(NSMenuItem(item)); - //Item.Release; + end; + if Assigned(menuitem.menu) then + menuitem.menu.removeItem(menuitem); AMenuItem.Handle := 0; - end - end; + end + end; end; {------------------------------------------------------------------------------