Fix bug #10076 with vertical cursor motion in hscrolled windows.
authorEli Zaretskii <eliz@gnu.org>
Sat, 19 Nov 2011 19:49:56 +0000 (21:49 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 19 Nov 2011 19:49:56 +0000 (21:49 +0200)
 lisp/simple.el (line-move): Force movement by logical lines for any
 hscrolled window, not only when auto-hscroll-mode is on.
 (line-move-visual): Update doc string to that effect.

lisp/ChangeLog
lisp/simple.el

index b35ddc2..86a6c1c 100644 (file)
@@ -1,3 +1,9 @@
+2011-11-19  Eli Zaretskii  <eliz@gnu.org>
+
+       * simple.el (line-move): Force movement by logical lines for any
+       hscrolled window, not only when auto-hscroll-mode is on.
+       (line-move-visual): Update doc string to that effect.  (Bug#10076)
+
 2011-11-19  Andreas Schwab  <schwab@linux-m68k.org>
 
        * language/european.el (macintosh): Define as alias for mac-roman.
index e70d375..1dc866c 100644 (file)
@@ -4277,8 +4277,8 @@ into account variable-width characters and line continuation.
 If nil, `line-move' moves point by logical lines.
 A non-nil setting of `goal-column' overrides the value of this variable
 and forces movement by logical lines.
-Disabling `auto-hscroll-mode' also overrides forces movement by logical
-lines when the window is horizontally scrolled."
+A window that is  horizontally scrolled also forces movement by logical
+lines."
   :type 'boolean
   :group 'editing-basics
   :version "23.1")
@@ -4358,12 +4358,10 @@ lines when the window is horizontally scrolled."
     (if (and line-move-visual
             ;; Display-based column are incompatible with goal-column.
             (not goal-column)
-            ;; When auto-hscroll-mode is turned off and the text in
-            ;; the window is scrolled to the left, display-based
-            ;; motion doesn't make sense (because each logical line
-            ;; occupies exactly one screen line).
-            (not (and (null auto-hscroll-mode)
-                      (> (window-hscroll) 0))))
+            ;; When the text in the window is scrolled to the left,
+            ;; display-based motion doesn't make sense (because each
+            ;; logical line occupies exactly one screen line).
+            (not (> (window-hscroll) 0)))
        (line-move-visual arg noerror)
       (line-move-1 arg noerror to-end))))