From 2367c15b18dd6b3aaf82bdbab9d2e833ec838ef4 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 13 Aug 2017 17:53:48 +0300 Subject: [PATCH] Fix vertical cursor motion when cursor is on the fringe * lisp/simple.el (line-move-visual): Fix an off-by-one error in setting temporary-goal-column when newline overflows into the fringe. Support that use case in R2L paragraphs as well. --- lisp/simple.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lisp/simple.el b/lisp/simple.el index 16f69f2bbe7..58f83721923 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -6261,9 +6261,10 @@ If NOERROR, don't signal an error if we can't move that many lines." (let ((posn (posn-at-point)) x-pos) (cond - ;; Handle the `overflow-newline-into-fringe' case: - ((eq (nth 1 posn) 'right-fringe) - (setq temporary-goal-column (cons (- (window-width) 1) hscroll))) + ;; Handle the `overflow-newline-into-fringe' case + ;; (left-fringe is for the R2L case): + ((memq (nth 1 posn) '(right-fringe left-fringe)) + (setq temporary-goal-column (cons (window-width) hscroll))) ((car (posn-x-y posn)) (setq x-pos (car (posn-x-y posn))) ;; In R2L lines, the X pixel coordinate is measured from the -- 2.11.4.GIT