From 461ac0815c153778c41f3074e8d7748754ff7dd9 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Sun, 8 May 2022 19:14:57 +0800 Subject: [PATCH] Fix crashes on ordinary menus on macOS * src/nsmenu.m ([EmacsMenu runMenuAt:forFrame:keymaps:]): Fix coding style. ([EmacsMenu menu:willHighlightItem:]): Ignore if this is a context menu. --- src/nsmenu.m | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/nsmenu.m b/src/nsmenu.m index b0ab12bb87d..34864f94087 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -741,15 +741,15 @@ prettify_key (const char *key) /* p = [view convertPoint:p fromView: nil]; */ p.y = NSHeight ([view frame]) - p.y; e = [[view window] currentEvent]; - event = [NSEvent mouseEventWithType: NSEventTypeRightMouseDown - location: p - modifierFlags: 0 - timestamp: [e timestamp] - windowNumber: [[view window] windowNumber] - context: nil - eventNumber: 0 /* [e eventNumber] */ - clickCount: 1 - pressure: 0]; + event = [NSEvent mouseEventWithType: NSEventTypeRightMouseDown + location: p + modifierFlags: 0 + timestamp: [e timestamp] + windowNumber: [[view window] windowNumber] + context: nil + eventNumber: 0 /* [e eventNumber] */ + clickCount: 1 + pressure: 0]; context_menu_value = -1; [NSMenu popUpContextMenu: self withEvent: event forView: view]; @@ -767,6 +767,10 @@ prettify_key (const char *key) Lisp_Object vec = f->menu_bar_vector; Lisp_Object help, frame; + /* This isn't a menubar, ignore. */ + if (context_menu_value == -1) + return; + if (idx >= ASIZE (vec)) return; -- 2.39.2