diff options
| author | Glenn Morris <rgm@gnu.org> | 2021-03-12 08:47:41 -0800 |
|---|---|---|
| committer | Glenn Morris <rgm@gnu.org> | 2021-03-12 08:47:41 -0800 |
| commit | 74c389526f93cc4eded6759ffd3e1cfa4d429d6f (patch) | |
| tree | b5904c644dc1701ed7214ce6e997d2252c25f2c5 /src | |
| parent | f7b7ecc4df7108da31625a3630cbbbdbec3abbd7 (diff) | |
| parent | 2c5f21541957e2420e54ab2a70883140811708f7 (diff) | |
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
Diffstat (limited to 'src')
| -rw-r--r-- | src/gtkutil.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c index 11e59b9fae5..4634c35dd4c 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -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); } |
