Merge from origin/emacs-27

2c5f215419 Avoid crashes in Mew due to corrupted tool-bar label
7a23915618 * lisp/tooltip.el (tooltip): Doc fix for GTK.
c4bbe02cc4 * lisp/help.el (help-for-help-internal): Doc fix; use impe...

# Conflicts:
#	lisp/help.el
#	lisp/tooltip.el
This commit is contained in:
Glenn Morris 2021-03-12 08:47:41 -08:00
commit 74c389526f
3 changed files with 19 additions and 10 deletions

View file

@ -210,7 +210,7 @@ Do not call this in the scope of `with-help-window'."
\\[describe-key] KEYS Display the full documentation for the key sequence.
\\[Info-goto-emacs-key-command-node] KEYS Show the Emacs manual's section for the command bound to KEYS.
\\[view-lossage] Show last 300 input keystrokes (lossage).
\\[describe-language-environment] LANG-ENV Describes a specific language environment, or RET for current.
\\[describe-language-environment] LANG-ENV Describe a specific language environment, or RET for current.
\\[describe-mode] Display documentation of current minor modes and current major mode,
including their special commands.
\\[view-emacs-news] Display news of recent Emacs changes.

View file

@ -131,7 +131,10 @@ of the `tooltip' face are used instead."
:inherit variable-pitch)
(t
:inherit variable-pitch))
"Face for tooltips."
"Face for tooltips.
When using the GTK toolkit, this face will only be used if
`x-gtk-use-system-tooltips' is non-nil."
:group 'basic-faces)
(defcustom tooltip-use-echo-area nil

View file

@ -5014,11 +5014,10 @@ update_frame_tool_bar (struct frame *f)
GtkWidget *wbutton = NULL;
Lisp_Object specified_file;
bool vert_only = ! NILP (PROP (TOOL_BAR_ITEM_VERT_ONLY));
const char *label
= (EQ (style, Qimage) || (vert_only && horiz)) ? NULL
: STRINGP (PROP (TOOL_BAR_ITEM_LABEL))
? SSDATA (PROP (TOOL_BAR_ITEM_LABEL))
: "";
Lisp_Object label
= (EQ (style, Qimage) || (vert_only && horiz))
? Qnil
: PROP (TOOL_BAR_ITEM_LABEL);
ti = gtk_toolbar_get_nth_item (GTK_TOOLBAR (wtoolbar), j);
@ -5131,8 +5130,11 @@ update_frame_tool_bar (struct frame *f)
/* If there is an existing widget, check if it's stale; if so,
remove it and make a new tool item from scratch. */
if (ti && xg_tool_item_stale_p (wbutton, stock_name, icon_name,
img, label, horiz))
if (ti && xg_tool_item_stale_p (wbutton, stock_name, icon_name, img,
NILP (label)
? NULL
: STRINGP (label) ? SSDATA (label) : "",
horiz))
{
gtk_container_remove (GTK_CONTAINER (wtoolbar),
GTK_WIDGET (ti));
@ -5189,7 +5191,11 @@ update_frame_tool_bar (struct frame *f)
#else
if (w) gtk_misc_set_padding (GTK_MISC (w), hmargin, vmargin);
#endif
ti = xg_make_tool_item (f, w, &wbutton, label, i, horiz, text_image);
ti = xg_make_tool_item (f, w, &wbutton,
NILP (label)
? NULL
: STRINGP (label) ? SSDATA (label) : "",
i, horiz, text_image);
gtk_toolbar_insert (GTK_TOOLBAR (wtoolbar), ti, j);
}