Commit 54256143 authored by Stefan Kangas's avatar Stefan Kangas Committed by Eli Zaretskii

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)
parent efda44fb
......@@ -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
......
......@@ -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
......
......@@ -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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment