diff options
Diffstat (limited to 'lisp/simple.el')
| -rw-r--r-- | lisp/simple.el | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lisp/simple.el b/lisp/simple.el index e15291a345b..25293edf88f 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -5604,14 +5604,22 @@ If NOERROR, don't signal an error if we can't move that many lines." | |||
| 5604 | (> (cdr temporary-goal-column) 0)) | 5604 | (> (cdr temporary-goal-column) 0)) |
| 5605 | (setq target-hscroll (cdr temporary-goal-column))) | 5605 | (setq target-hscroll (cdr temporary-goal-column))) |
| 5606 | ;; Otherwise, we should reset `temporary-goal-column'. | 5606 | ;; Otherwise, we should reset `temporary-goal-column'. |
| 5607 | (let ((posn (posn-at-point))) | 5607 | (let ((posn (posn-at-point)) |
| 5608 | x-pos) | ||
| 5608 | (cond | 5609 | (cond |
| 5609 | ;; Handle the `overflow-newline-into-fringe' case: | 5610 | ;; Handle the `overflow-newline-into-fringe' case: |
| 5610 | ((eq (nth 1 posn) 'right-fringe) | 5611 | ((eq (nth 1 posn) 'right-fringe) |
| 5611 | (setq temporary-goal-column (cons (- (window-width) 1) hscroll))) | 5612 | (setq temporary-goal-column (cons (- (window-width) 1) hscroll))) |
| 5612 | ((car (posn-x-y posn)) | 5613 | ((car (posn-x-y posn)) |
| 5614 | (setq x-pos (car (posn-x-y posn))) | ||
| 5615 | ;; In R2L lines, the X pixel coordinate is measured from the | ||
| 5616 | ;; left edge of the window, but columns are still counted | ||
| 5617 | ;; from the logical-order beginning of the line, i.e. from | ||
| 5618 | ;; the right edge in this case. We need to adjust for that. | ||
| 5619 | (if (eq (current-bidi-paragraph-direction) 'right-to-left) | ||
| 5620 | (setq x-pos (- (window-body-width nil t) 1 x-pos))) | ||
| 5613 | (setq temporary-goal-column | 5621 | (setq temporary-goal-column |
| 5614 | (cons (/ (float (car (posn-x-y posn))) | 5622 | (cons (/ (float x-pos) |
| 5615 | (frame-char-width)) | 5623 | (frame-char-width)) |
| 5616 | hscroll)))))) | 5624 | hscroll)))))) |
| 5617 | (if target-hscroll | 5625 | (if target-hscroll |