]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove the `mode-line-percent-position' min width hack
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 20 Dec 2021 12:37:15 +0000 (13:37 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 21 Dec 2021 04:23:11 +0000 (05:23 +0100)
* 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).

lisp/bindings.el
src/xdisp.c

index ba3bf81b3e35326d941d39834844d7ff30473d1c..98a12a252ad5fb04b57ead6554a9c0ce29e85d28 100644 (file)
@@ -501,7 +501,7 @@ mouse-1: Display Line and Column Mode Menu"))
 
 (defvar mode-line-position
   `((:propertize
-     (" " mode-line-percent-position)
+     ("" mode-line-percent-position)
      local-map ,mode-line-column-line-number-mode-map
      display (min-width (5.0))
      mouse-face mode-line-highlight
index 0c35d24c262172b3e297c9eb83e54a10ddb9d380..35675a6a36eb9f2674bb25850b46297beedd1097 100644 (file)
@@ -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