]> code.delx.au - gnu-emacs/commitdiff
Fix crash on OSX >= 10.7.
authorJan Djärv <jan.h.d@swipnet.se>
Sun, 11 Aug 2013 15:34:26 +0000 (17:34 +0200)
committerJan Djärv <jan.h.d@swipnet.se>
Sun, 11 Aug 2013 15:34:26 +0000 (17:34 +0200)
* nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
(initWithTitle:): Initialize frame to 0.
(fillWithWidgetValue:): Call fillWithWidgetValue:frame.
(fillWithWidgetValue:frame:): Renamed from
fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.

* nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
fillWithWidgetValue:frame:

src/ChangeLog
src/nsmenu.m
src/nsterm.h

index f8aea1dc83be5e4259160f4b21fe04d7323cf5c9..fce45d37447875cd957ebc7dba7dda8265399d5f 100644 (file)
@@ -1,5 +1,14 @@
 2013-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 
+       * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
+       (initWithTitle:): Initialize frame to 0.
+       (fillWithWidgetValue:): Call fillWithWidgetValue:frame.
+       (fillWithWidgetValue:frame:): Renamed from
+       fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
+
+       * nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
+       fillWithWidgetValue:frame:
+
        * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to
        remove memory leak warnings.
 
index 1ae2a34ab925391e1e99bd0202990b3901156d07..2850f0ed97d2753ce117cdcd935f410a3f8ede86 100644 (file)
@@ -366,7 +366,7 @@ ns_update_menubar (struct frame *f, bool deep_p, EmacsMenu *submenu)
         }
       else
         {
-          [menu fillWithWidgetValue: first_wv->contents setDelegate:YES];
+          [menu fillWithWidgetValue: first_wv->contents frame: f];
         }
 
     }
@@ -527,6 +527,7 @@ x_activate_menubar (struct frame *f)
 /* override designated initializer */
 - initWithTitle: (NSString *)title
 {
+  frame = 0;
   if ((self = [super initWithTitle: title]))
     [self setAutoenablesItems: NO];
   return self;
@@ -725,10 +726,10 @@ extern NSString *NSMenuDidBeginTrackingNotification;
 
 - (void)fillWithWidgetValue: (void *)wvptr
 {
-  [self fillWithWidgetValue: wvptr setDelegate:NO];
+  [self fillWithWidgetValue: wvptr frame:nil];
 }
 
-- (void)fillWithWidgetValue: (void *)wvptr setDelegate: (BOOL)set
+- (void)fillWithWidgetValue: (void *)wvptr frame: (struct frame *)f
 {
   widget_value *wv = (widget_value *)wvptr;
 
@@ -743,11 +744,13 @@ extern NSString *NSMenuDidBeginTrackingNotification;
 
       if (wv->contents)
         {
-          EmacsMenu *submenu = [[EmacsMenu alloc] initWithTitle: [item title]];
+          EmacsMenu *submenu;
+
+          if (f)
+            submenu = [[EmacsMenu alloc] initWithTitle: [item title] frame:f];
+          else
+            submenu = [[EmacsMenu alloc] initWithTitle: [item title]];
 
-#ifdef NS_IMPL_COCOA
-          if (set) [submenu setDelegate: submenu];
-#endif
           [self setSubmenu: submenu forItem: item];
           [submenu fillWithWidgetValue: wv->contents];
           [submenu release];
index cf8e26d14a690aa3a1b99e1bb28922356a808d41..7843f369d24c5a785ae5ef08e6402bc2d6e67fc4 100644 (file)
@@ -196,7 +196,7 @@ typedef float EmacsCGFloat;
 - (NSString *)parseKeyEquiv: (const char *)key;
 - (NSMenuItem *)addItemWithWidgetValue: (void *)wvptr;
 - (void)fillWithWidgetValue: (void *)wvptr;
-- (void)fillWithWidgetValue: (void *)wvptr setDelegate: (BOOL)set;
+- (void)fillWithWidgetValue: (void *)wvptr frame: (struct frame *)f;
 - (EmacsMenu *)addSubmenuWithTitle: (const char *)title forFrame: (struct frame *)f;
 - (void) clear;
 - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f