X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/79a90058ec11dbb56665e85a6631e4b8b5e7a6c6..d3155315c85212f224fc5df0239182dafdfd6284:/src/nsmenu.m diff --git a/src/nsmenu.m b/src/nsmenu.m index 778b068ef8..b5cb64d68e 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -1,5 +1,5 @@ /* NeXT/Open/GNUstep and MacOSX Cocoa menu and toolbar module. - Copyright (C) 2007-2014 Free Software Foundation, Inc. + Copyright (C) 2007-2015 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -59,12 +59,6 @@ int menu_trace_num = 0; #include "nsmenu_common.c" #endif -extern Lisp_Object Qundefined, Qmenu_enable, Qmenu_bar_update_hook; -extern Lisp_Object QCtoggle, QCradio; - -Lisp_Object Qdebug_on_next_call; -extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map; - extern long context_menu_value; EmacsMenu *mainMenu, *svcsMenu, *dockMenu; @@ -492,11 +486,9 @@ void x_activate_menubar (struct frame *f) { #ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 ns_update_menubar (f, true, nil); ns_check_pending_open_menu (); #endif -#endif } @@ -541,24 +533,15 @@ x_activate_menubar (struct frame *f) frame = f; } -#ifdef NS_IMPL_COCOA -#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 -extern NSString *NSMenuDidBeginTrackingNotification; -#endif -#endif - #ifdef NS_IMPL_COCOA -(void)trackingNotification:(NSNotification *)notification { /* Update menu in menuNeedsUpdate only while tracking menus. */ trackingMenu = ([notification name] == NSMenuDidBeginTrackingNotification ? 1 : 0); -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 if (! trackingMenu) ns_check_menu_open (nil); -#endif } -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - (void)menuWillOpen:(NSMenu *)menu { ++trackingMenu; @@ -579,7 +562,6 @@ extern NSString *NSMenuDidBeginTrackingNotification; { --trackingMenu; } -#endif /* OSX >= 10.5 */ #endif /* NS_IMPL_COCOA */ @@ -608,8 +590,7 @@ extern NSString *NSMenuDidBeginTrackingNotification; if (trackingMenu == 0) return; /*fprintf (stderr, "Updating menu '%s'\n", [[self title] UTF8String]); NSLog (@"%@\n", event); */ -#if (! defined (NS_IMPL_COCOA) \ - || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5) +#ifdef NS_IMPL_GNUSTEP /* Don't know how to do this for anything other than OSX >= 10.5 This is wrong, as it might run Lisp code in the event loop. */ ns_update_menubar (frame, true, self); @@ -706,9 +687,7 @@ extern NSString *NSMenuDidBeginTrackingNotification; { NSMenuItem *item = [self itemAtIndex: n]; NSString *title = [item title]; - if (([title length] == 0 /* OSX 10.5 */ - || [ns_app_name isEqualToString: title] /* from 10.6 on */ - || [@"Apple" isEqualToString: title]) /* older */ + if ([ns_app_name isEqualToString: title] && ![item isSeparatorItem]) continue; [self removeItemAtIndex: n]; @@ -1041,10 +1020,13 @@ update_frame_tool_bar (struct frame *f) EmacsView *view = FRAME_NS_VIEW (f); NSWindow *window = [view window]; EmacsToolbar *toolbar = [view toolbar]; + int oldh; if (view == nil || toolbar == nil) return; block_input (); + oldh = FRAME_TOOLBAR_HEIGHT (f); + #ifdef NS_IMPL_COCOA [toolbar clearActive]; #else @@ -1151,6 +1133,8 @@ update_frame_tool_bar (struct frame *f) if (FRAME_TOOLBAR_HEIGHT (f) < 0) // happens if frame is fullscreen. FRAME_TOOLBAR_HEIGHT (f) = 0; + if (oldh != FRAME_TOOLBAR_HEIGHT (f)) + [view updateFrameSize:YES]; if (view->wait_for_tool_bar && FRAME_TOOLBAR_HEIGHT (f) > 0) { view->wait_for_tool_bar = NO; @@ -1434,7 +1418,7 @@ Lisp_Object ns_popup_dialog (struct frame *f, Lisp_Object header, Lisp_Object contents) { id dialog; - Lisp_Object window, tem, title; + Lisp_Object tem, title; NSPoint p; BOOL isQ; NSAutoreleasePool *pool; @@ -1522,7 +1506,11 @@ ns_popup_dialog (struct frame *f, Lisp_Object header, Lisp_Object contents) area.size.width = ICONSIZE; area.size.height= ICONSIZE; img = [[NSImage imageNamed: @"NSApplicationIcon"] copy]; +#ifdef NS_IMPL_COCOA +#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6 [img setScalesWhenResized: YES]; +#endif +#endif [img setSize: NSMakeSize (ICONSIZE, ICONSIZE)]; imgView = [[NSImageView alloc] initWithFrame: area]; [imgView setImage: img]; @@ -1886,6 +1874,5 @@ syms_of_nsmenu (void) defsubr (&Sns_reset_menu); defsubr (&Smenu_or_popup_active_p); - Qdebug_on_next_call = intern_c_string ("debug-on-next-call"); - staticpro (&Qdebug_on_next_call); + DEFSYM (Qdebug_on_next_call, "debug-on-next-call"); }