Make toolbar show keyboard equivalents in its tooltips

* src/keyboard.c (parse_tool_bar_item): Add equivalent key binding to
the tooltip string of toolbar buttons.
* etc/NEWS: Announce it.
* etc/TODO: Remove its entry.  (Bug#36156)
This commit is contained in:
Stefan Kangas 2019-06-09 04:27:09 +02:00 committed by Eli Zaretskii
parent efda44fb72
commit 54256143ef
3 changed files with 16 additions and 2 deletions

View file

@ -125,6 +125,9 @@ This is intended mostly to help developers.
** Emacs now requires GTK 2.24 and GTK 3.10 for the GTK 2 and GTK 3
builds respectively.
---
** The toolbar now shows the equivalent key binding in its tooltips.
* Startup Changes in Emacs 27.1

View file

@ -176,8 +176,6 @@ See the 'test' directory for examples.
** In Emacs Info, examples of using Customize should be clickable
and they should create Custom buffers.
** The toolbar should show keyboard equivalents in its tooltips.
** Add function to redraw the tool bar.
** Redesign the load-history data structure so it can cope better

View file

@ -8297,6 +8297,19 @@ parse_tool_bar_item (Lisp_Object key, Lisp_Object item)
if (CONSP (get_keymap (PROP (TOOL_BAR_ITEM_BINDING), 0, 1)))
return 0;
/* If there is a key binding, add it to the help, which will be
displayed as a tooltip for this entry. */
Lisp_Object binding = PROP (TOOL_BAR_ITEM_BINDING);
Lisp_Object keys = Fwhere_is_internal (binding, Qnil, Qt, Qnil, Qnil);
if (!NILP (keys))
{
AUTO_STRING (beg, " (");
AUTO_STRING (end, ")");
Lisp_Object orig = PROP (TOOL_BAR_ITEM_HELP);
Lisp_Object desc = Fkey_description (keys, Qnil);
set_prop (TOOL_BAR_ITEM_HELP, CALLN (Fconcat, orig, beg, desc, end));
}
/* Enable or disable selection of item. */
if (!EQ (PROP (TOOL_BAR_ITEM_ENABLED_P), Qt))
set_prop (TOOL_BAR_ITEM_ENABLED_P,