aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-05-13 16:06:40 +0800
committerPo Lu2022-05-13 16:06:40 +0800
commit62d2db341ce7b8b109d5f284adac8e19d0a6965e (patch)
treea7c9fd224bf145eb215a09385463fd4ad455a213 /src
parent85ac627ef4096a2d303f1d37c45da05dea1b7781 (diff)
downloademacs-62d2db341ce7b8b109d5f284adac8e19d0a6965e.tar.gz
emacs-62d2db341ce7b8b109d5f284adac8e19d0a6965e.zip
Display help-echo for popup menus on NS
* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Display help echo for ordinary popup menus as well.
Diffstat (limited to 'src')
-rw-r--r--src/nsmenu.m32
1 files changed, 24 insertions, 8 deletions
diff --git a/src/nsmenu.m b/src/nsmenu.m
index 34864f94087..9f4825ac140 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -765,17 +765,33 @@ prettify_key (const char *key)
765 NSInteger idx = [item tag]; 765 NSInteger idx = [item tag];
766 struct frame *f = SELECTED_FRAME (); 766 struct frame *f = SELECTED_FRAME ();
767 Lisp_Object vec = f->menu_bar_vector; 767 Lisp_Object vec = f->menu_bar_vector;
768 Lisp_Object help, frame; 768 Lisp_Object help, frame, *client_data;
769 769
770 /* This isn't a menubar, ignore. */ 770 XSETFRAME (frame, f);
771 if (context_menu_value == -1)
772 return;
773 771
774 if (idx >= ASIZE (vec)) 772 /* This menu isn't a menubar, so use the pointer to the popup menu
775 return; 773 data. */
774 if (context_menu_value != 0)
775 {
776 client_data = (Lisp_Object *) idx;
776 777
777 XSETFRAME (frame, f); 778 if (client_data)
778 help = AREF (vec, idx + MENU_ITEMS_ITEM_HELP); 779 help = client_data[MENU_ITEMS_ITEM_HELP];
780 else
781 help = Qnil;
782 }
783 /* Just dismiss any help-echo that might already be in progress if
784 no menu item will be highlighted. */
785 else if (item == nil)
786 help = Qnil;
787 else
788 {
789 if (idx >= ASIZE (vec))
790 return;
791
792 /* Otherwise, get the help data from the menu bar vector. */
793 help = AREF (vec, idx + MENU_ITEMS_ITEM_HELP);
794 }
779 795
780 popup_activated_flag++; 796 popup_activated_flag++;
781 if (STRINGP (help) || NILP (help)) 797 if (STRINGP (help) || NILP (help))