GNU bug report logs - #75168
31.0.50; text-scale confuses ruler-mode when display-line-number-mode is active

Previous Next

Package: emacs;

Reported by: Arsen Arsenović <arsen <at> aarsen.me>

Date: Sat, 28 Dec 2024 21:16:01 UTC

Severity: normal

Found in version 31.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 75168 <at> debbugs.gnu.org (full text, mbox):

From: Arsen Arsenović <arsen <at> aarsen.me>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 75168 <at> debbugs.gnu.org
Subject: Re: bug#75168: 31.0.50; text-scale confuses ruler-mode when
 display-line-number-mode is active
Date: Sat, 18 Jan 2025 16:45:53 +0100
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:

> Seems to work well, so could you please submit a full patch with the
> commit log message, so we could then install this?
>
> Thanks.

Sure.  Attached.

[0001-ruler-mode-Improve-compatibility-with-text-scale-bug.patch (text/x-patch, inline)]
From 3e24ff3da4fd423f3d2b32679e87f2fc963482f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen <at> aarsen.me>
Date: Sat, 18 Jan 2025 16:40:29 +0100
Subject: [PATCH] ruler-mode: Improve compatibility with text-scale (bug#75168)

* lisp/ruler-mode.el (ruler-mode-ruler): Use pixelwise line-number
display width for alignment with line numbers.
---
 lisp/ruler-mode.el | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el
index 003dcae560f..64568e06cc9 100644
--- a/lisp/ruler-mode.el
+++ b/lisp/ruler-mode.el
@@ -632,12 +632,7 @@ ruler-mode-ruler
   (let* ((w (ruler-mode-text-scaled-window-width))
          (m (window-margins))
          (f (window-fringes))
-         (i (if display-line-numbers
-                ;; FIXME: ruler-mode relies on I being an integer, so
-                ;; the column numbers might be slightly off if the
-                ;; line-number face is customized.
-                (round (line-number-display-width 'columns))
-              0))
+         (i 0)
          (j (ruler-mode-text-scaled-window-hscroll))
          ;; Setup the scrollbar, fringes, and margins areas.
          (lf (ruler-mode-space
@@ -745,6 +740,12 @@ ruler-mode-ruler
       (dolist (p (nreverse props))
         (add-text-properties (nth 0 p) (nth 1 p) (nthcdr 2 p) ruler-str))
 
+      ;; Attach an alignment indent.
+      (if display-line-numbers
+          (setq ruler-str
+                (concat (ruler-mode-space `(,(line-number-display-width t)))
+                        ruler-str)))
+
       ;; Return the ruler propertized string.  Using list here,
       ;; instead of concat visually separate the different areas.
       (if (nth 2 (window-fringes))
-- 
2.48.0

[Message part 3 (text/plain, inline)]
Have a lovely day.
-- 
Arsen Arsenović
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 174 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.