From: Eli Zaretskii Date: Fri, 18 Dec 2015 10:26:17 +0000 (+0200) Subject: Fix vertical-motion in tabulated-list mode X-Git-Tag: emacs-25.0.90~449 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fb2eaf0ffc213fac170cff4814b7c93bd0c44c20;p=emacs.git Fix vertical-motion in tabulated-list mode * src/indent.c (Fvertical_motion): When moving from line beginning to point under line truncation, assume overshoot by one line only if point actually lies beyond the window's right margin. (Bug#22194) --- diff --git a/src/indent.c b/src/indent.c index 04837f8f513..33bf424b344 100644 --- a/src/indent.c +++ b/src/indent.c @@ -2080,11 +2080,7 @@ whether or not it is currently displayed in some window. */) } else it_overshoot_count = - (!(it.method == GET_FROM_IMAGE - || it.method == GET_FROM_STRETCH) - /* We will overshoot if lines are truncated and PT lies - beyond the right margin of the window. */ - || it.line_wrap == TRUNCATE); + !(it.method == GET_FROM_IMAGE || it.method == GET_FROM_STRETCH); if (start_x_given) { @@ -2142,6 +2138,11 @@ whether or not it is currently displayed in some window. */) screen lines we need to backtrack. */ it_overshoot_count = it.vpos; } + /* We will overshoot if lines are truncated and point lies + beyond the right margin of the window. */ + if (it.line_wrap == TRUNCATE && it.current_x >= it.last_visible_x + && it_overshoot_count == 0) + it_overshoot_count = 1; if (it_overshoot_count > 0) move_it_by_lines (&it, -it_overshoot_count);