[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#50067: Context menus
From: |
Juri Linkov |
Subject: |
bug#50067: Context menus |
Date: |
Fri, 20 Aug 2021 19:36:58 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) |
>> An example of such menu is mouse-buffer-menu bound to C-<down-mouse-1>
>> where the user might wonder what do these menu items with mode names mean?
>
> OK, but I still don't think I fully understand how context menus are
> different. Are we sure the user will immediately understand the
> purpose of the context menus, but not of a buffer-menu?
Context menus displayed up by down-mouse-3 are ubiquitous nowadays,
they are everywhere, and the users expect them without a title,
unlike Emacs-specific menus unfamiliar to most users.
>> Using a text property would be a good solution. Should then
>> the NS-specific "Select" title be removed in menu.c
>> when the title has a special text property?
>
> I'm not sure I understand what is the NS-specific "Select" title. Can
> you point me to the relevant code?
I meant such patch:
diff --git a/lisp/mouse.el b/lisp/mouse.el
index d2a5200d8d..f9355b4f73 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -304,7 +304,7 @@ context-menu-filter-function
(defun context-menu-map ()
"Return composite menu map."
- (let ((menu (make-sparse-keymap)))
+ (let ((menu (make-sparse-keymap (propertize "Context Menu" 'hide t))))
(run-hook-wrapped 'context-menu-functions
(lambda (fun)
(setq menu (funcall fun menu))
diff --git a/src/menu.c b/src/menu.c
index 3b1d740257..6654c47c93 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1284,6 +1284,14 @@ x_popup_menu_1 (Lisp_Object position, Lisp_Object menu)
/* Search for a string appearing directly as an element of the keymap.
That string is the title of the menu. */
prompt = Fkeymap_prompt (keymap);
+
+#if defined (USE_GTK) || defined (HAVE_NS)
+ if (STRINGP (prompt)
+ && SCHARS (prompt) > 0
+ && !NILP (Fget_text_property (make_fixnum (0), Qhide, prompt)))
+ title = Qnil;
+ else
+#endif
if (!NILP (prompt))
title = prompt;
#ifdef HAVE_NS /* Is that needed and NS-specific? --Stef */
- bug#50067: Context menus, (continued)
- bug#50067: Context menus, Eli Zaretskii, 2021/08/18
- bug#50067: Context menus, Juri Linkov, 2021/08/19
- bug#50067: Context menus, Eli Zaretskii, 2021/08/19
- bug#50067: Context menus, Juri Linkov, 2021/08/20
- bug#50067: Context menus, Mattias Engdegård, 2021/08/20
- bug#50067: Context menus, Eli Zaretskii, 2021/08/20
- bug#50067: Context menus, Mattias Engdegård, 2021/08/20
- bug#50067: Context menus, Juri Linkov, 2021/08/20
- bug#50067: Context menus, Mattias Engdegård, 2021/08/20
- bug#50067: Context menus, Eli Zaretskii, 2021/08/20
- bug#50067: Context menus,
Juri Linkov <=
- bug#50067: Context menus, Eli Zaretskii, 2021/08/20
- bug#50067: Context menus, Mattias Engdegård, 2021/08/20
- bug#50067: Context menus, Alan Third, 2021/08/21
- bug#50067: Context menus, Mattias Engdegård, 2021/08/21
- bug#50067: Context menus, Eli Zaretskii, 2021/08/21
- bug#50067: Context menus, Mattias Engdegård, 2021/08/21
- bug#50067: Context menus, Eli Zaretskii, 2021/08/21
- bug#50067: Context menus, Dmitry Gutov, 2021/08/22
- bug#50067: Context menus, Eli Zaretskii, 2021/08/22
- bug#50067: Context menus, Dmitry Gutov, 2021/08/22