all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [PATCH] Fix ruler-mode text-scaling issues
@ 2017-05-25  3:33 路客
  2017-05-25 15:06 ` Eli Zaretskii
  2017-05-27 13:27 ` Eli Zaretskii
  0 siblings, 2 replies; 4+ messages in thread
From: 路客 @ 2017-05-25  3:33 UTC (permalink / raw)
  To: Emacs developers

Fix ruler-mode text-scaling issues.

* lisp/ruler-mode.el (ruler-mode-text-scaled-width): new function
for computing scaled text width.
(ruler-mode-text-scaled-window-hscroll): compute text scaled
`window-hscroll' value.
(ruler-mode-text-scaled-window-width): compute text scaled
`window-width' value.
(ruler-mode-mouse-grab-any-column, ruler-mode-mouse-add-tab-stop,
ruler-mode-ruler): change `window-hscroll' into
`ruler-mode-text-scaled-window-hscroll', and change `window-width'
into `ruler-mode-text-scaled-window-width'.
---
 lisp/ruler-mode.el | 34 ++++++++++++++++++++++++----------
 1 file changed, 24 insertions(+), 10 deletions(-)

diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el
index 4f09a1887f5..7b0588dfead 100644
--- a/lisp/ruler-mode.el
+++ b/lisp/ruler-mode.el
@@ -360,6 +360,20 @@ ruler-mode-dragged-symbol
 That is `fill-column', `comment-column', `goal-column', or nil when
 nothing is dragged.")

+(defun ruler-mode-text-scaled-width (width)
+  "Compute scaled text width according to current font scaling.
+Convert a width of char units into a text-scaled char width units,
+Ex. `window-hscroll'."
+  (/ (* width (frame-char-width)) (default-font-width)))
+
+(defun ruler-mode-text-scaled-window-hscroll ()
+  "Text scaled `window-hscroll'."
+  (ruler-mode-text-scaled-width (window-hscroll)))
+
+(defun ruler-mode-text-scaled-window-width ()
+  "Text scaled `window-width'."
+  (ruler-mode-text-scaled-width (window-width)))
+
 (defun ruler-mode-mouse-grab-any-column (start-event)
   "Drag a column symbol on the ruler.
 Start dragging on mouse down event START-EVENT, and update the column
@@ -372,9 +386,9 @@ ruler-mode-mouse-grab-any-column
     (save-selected-window
       (select-window (posn-window start))
       (setq col  (ruler-mode-window-col (car (posn-col-row start)))
-            newc (+ col (window-hscroll)))
+            newc (+ col (ruler-mode-text-scaled-window-hscroll)))
       (and
-       (>= col 0) (< col (window-width))
+       (>= col 0) (< col (ruler-mode-text-scaled-window-width))
        (cond

         ;; Handle the fill column.
@@ -457,8 +471,8 @@ ruler-mode-mouse-drag-any-column
     (save-selected-window
       (select-window (posn-window start))
       (setq col  (ruler-mode-window-col (car (posn-col-row end)))
-            newc (+ col (window-hscroll)))
-      (when (and (>= col 0) (< col (window-width)))
+            newc (+ col (ruler-mode-text-scaled-window-hscroll)))
+      (when (and (>= col 0) (< col (ruler-mode-text-scaled-window-width)))
         (set ruler-mode-dragged-symbol newc)))))

 (defun ruler-mode-mouse-add-tab-stop (start-event)
@@ -473,8 +487,8 @@ ruler-mode-mouse-add-tab-stop
         (save-selected-window
           (select-window (posn-window start))
           (setq col (ruler-mode-window-col (car (posn-col-row start)))
-                ts  (+ col (window-hscroll)))
-          (and (>= col 0) (< col (window-width))
+                ts  (+ col (ruler-mode-text-scaled-window-hscroll)))
+          (and (>= col 0) (< col (ruler-mode-text-scaled-window-width))
                (not (member ts tab-stop-list))
                (progn
                  (message "Tab stop set to %d" ts)
@@ -494,8 +508,8 @@ ruler-mode-mouse-del-tab-stop
         (save-selected-window
           (select-window (posn-window start))
           (setq col (ruler-mode-window-col (car (posn-col-row start)))
-                ts  (+ col (window-hscroll)))
-          (and (>= col 0) (< col (window-width))
+                ts  (+ col (ruler-mode-text-scaled-window-hscroll)))
+          (and (>= col 0) (< col (ruler-mode-text-scaled-window-width))
                (member ts tab-stop-list)
                (progn
                  (message "Tab stop at %d deleted" ts)
@@ -648,11 +662,11 @@ ruler-mode-space

 (defun ruler-mode-ruler ()
   "Compute and return a header line ruler."
-  (let* ((w (window-width))
+  (let* ((w (ruler-mode-text-scaled-window-width))
          (m (window-margins))
          (f (window-fringes))
          (i 0)
-         (j (window-hscroll))
+         (j (ruler-mode-text-scaled-window-hscroll))
          ;; Setup the scrollbar, fringes, and margins areas.
          (lf (ruler-mode-space
               'left-fringe



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] Fix ruler-mode text-scaling issues
  2017-05-25  3:33 [PATCH] Fix ruler-mode text-scaling issues 路客
@ 2017-05-25 15:06 ` Eli Zaretskii
  2017-05-25 15:29   ` 路客
  2017-05-27 13:27 ` Eli Zaretskii
  1 sibling, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2017-05-25 15:06 UTC (permalink / raw)
  To: 路客; +Cc: emacs-devel

> From: 路客 <luke.yx.lee@gmail.com>
> Date: Thu, 25 May 2017 11:33:28 +0800
> 
> Fix ruler-mode text-scaling issues.

Thanks.  Is this different from your previous version, and if so, how?



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Fix ruler-mode text-scaling issues
  2017-05-25 15:06 ` Eli Zaretskii
@ 2017-05-25 15:29   ` 路客
  0 siblings, 0 replies; 4+ messages in thread
From: 路客 @ 2017-05-25 15:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Emacs developers

Thanks for reviewing them. They are almost the same but only the
function name to be self-explanatory ; I also corrected the
explanation in the function since I did not do any round-up (and there
is no need).

Do I need to change anything?
Thanks!

Best regards,
Luke Lee


2017-05-25 23:06 GMT+08:00 Eli Zaretskii <eliz@gnu.org>:
>> From: 路客 <luke.yx.lee@gmail.com>
>> Date: Thu, 25 May 2017 11:33:28 +0800
>>
>> Fix ruler-mode text-scaling issues.
>
> Thanks.  Is this different from your previous version, and if so, how?



-- 
Best regards,
Luke Lee



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Fix ruler-mode text-scaling issues
  2017-05-25  3:33 [PATCH] Fix ruler-mode text-scaling issues 路客
  2017-05-25 15:06 ` Eli Zaretskii
@ 2017-05-27 13:27 ` Eli Zaretskii
  1 sibling, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2017-05-27 13:27 UTC (permalink / raw)
  To: 路客; +Cc: emacs-devel

> From: 路客 <luke.yx.lee@gmail.com>
> Date: Thu, 25 May 2017 11:33:28 +0800
> 
> Fix ruler-mode text-scaling issues.
> 
> * lisp/ruler-mode.el (ruler-mode-text-scaled-width): new function
> for computing scaled text width.
> (ruler-mode-text-scaled-window-hscroll): compute text scaled
> `window-hscroll' value.
> (ruler-mode-text-scaled-window-width): compute text scaled
> `window-width' value.
> (ruler-mode-mouse-grab-any-column, ruler-mode-mouse-add-tab-stop,
> ruler-mode-ruler): change `window-hscroll' into
> `ruler-mode-text-scaled-window-hscroll', and change `window-width'
> into `ruler-mode-text-scaled-window-width'.

Thanks, pushed to master.



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-05-27 13:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-25  3:33 [PATCH] Fix ruler-mode text-scaling issues 路客
2017-05-25 15:06 ` Eli Zaretskii
2017-05-25 15:29   ` 路客
2017-05-27 13:27 ` Eli Zaretskii

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.