summaryrefslogtreecommitdiff
path: root/src/xdisp.c
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2021-12-20 13:37:15 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2021-12-21 05:23:11 +0100
commit18ce031f9b21942586255fca86a5acf364742600 (patch)
tree005c5bf259a8072984baca2f312285870f77bdca /src/xdisp.c
parentc9636727363a0f0ecd8b2dd2cc6eebf9470e71f2 (diff)
downloademacs-18ce031f9b21942586255fca86a5acf364742600.tar.gz
Remove the `mode-line-percent-position' min width hack
* lisp/bindings.el (mode-line-position): Remove hack to get min-width to work on the `mode-line-percent-position' bit. * src/xdisp.c (display_string): Respect min-width in the non-Lisp string case (bug#52332).
Diffstat (limited to 'src/xdisp.c')
-rw-r--r--src/xdisp.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 0c35d24c262..35675a6a36e 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -27640,6 +27640,21 @@ display_string (const char *string, Lisp_Object lisp_string, Lisp_Object face_st
0, &endptr, it->base_face_id, false, 0);
face = FACE_FROM_ID (it->f, it->face_id);
it->face_box_p = face->box != FACE_NO_BOX;
+
+ /* If we have a display spec, but there's no Lisp being
+ displayed, then check whether we've got one from the
+ :propertize being passed in and use that. */
+ if (NILP (lisp_string))
+ {
+ Lisp_Object display = Fget_text_property (make_fixnum (0), Qdisplay,
+ face_string);
+ if (!NILP (display))
+ {
+ Lisp_Object min_width = Fplist_get (display, Qmin_width);
+ if (!NILP (min_width))
+ display_min_width (it, 0, face_string, min_width);
+ }
+ }
}
/* Set max_x to the maximum allowed X position. Don't let it go