[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 4bfa73f 1/2: Make display_min_width work from the mode line
From: |
Lars Ingebrigtsen |
Subject: |
master 4bfa73f 1/2: Make display_min_width work from the mode line |
Date: |
Wed, 24 Nov 2021 08:48:25 -0500 (EST) |
branch: master
commit 4bfa73f9207b47d0a6a0641bbdd39963242fa2c7
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Make display_min_width work from the mode line
* src/xdisp.c (display_min_width): Make this work from mode line
constructs via display_string.
---
src/xdisp.c | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/src/xdisp.c b/src/xdisp.c
index e8de063..cda7e04 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5214,11 +5214,18 @@ display_min_width (struct it *it, ptrdiff_t bufpos,
if (!it->glyph_row)
return;
- /* Check that we're really right after the sequence of
- characters covered by this `min-width'. */
- if (bufpos > BEGV
- && EQ (it->min_width_property,
- get_display_property (bufpos - 1, Qmin_width, object)))
+ /* When called form display_string (i.e., the mode line),
+ we're being called with a string as the object, and we
+ may be called with many sub-strings belonging to the same
+ :propertize run. */
+ if ((bufpos == 0
+ && !EQ (it->min_width_property,
+ get_display_property (0, Qmin_width, object)))
+ /* In a buffer -- check that we're really right after the
+ sequence of characters covered by this `min-width'. */
+ || (bufpos > BEGV
+ && EQ (it->min_width_property,
+ get_display_property (bufpos - 1, Qmin_width, object))))
{
Lisp_Object w = Qnil;
double width;
@@ -5258,6 +5265,11 @@ display_min_width (struct it *it, ptrdiff_t bufpos,
if (CONSP (width_spec))
{
if (bufpos == BEGV
+ /* Mode line (see above). */
+ || (bufpos == 0
+ && !EQ (it->min_width_property,
+ get_display_property (0, Qmin_width, object)))
+ /* Buffer. */
|| (bufpos > BEGV
&& !EQ (width_spec,
get_display_property (bufpos - 1, Qmin_width, object))))