[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 3a1e3b4: Fix vertical-movement in buffers with wrap
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master 3a1e3b4: Fix vertical-movement in buffers with wrap-prefix |
Date: |
Sat, 2 Jul 2016 12:40:50 +0000 (UTC) |
branch: master
commit 3a1e3b41a545ffc438b2e5c69982ff82e64b747c
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Fix vertical-movement in buffers with wrap-prefix
* src/indent.c (Fvertical_motion): Zero the current_y coordinate
whenever we zero the vpos vertical position of the iterator.
* src/xdisp.c (move_it_in_display_line_to): Handle line-prefix and
wrap-prefix regardless of whether the current Y coordinate is
inside the window dimensions. (Bug#23879)
---
src/indent.c | 4 ++++
src/xdisp.c | 3 +--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/indent.c b/src/indent.c
index 5d7c6ae..bc59239 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -2178,6 +2178,7 @@ whether or not it is currently displayed in some window.
*/)
if (nlines <= 0)
{
it.vpos = vpos_init;
+ it.current_y = 0;
/* Do this even if LINES is 0, so that we move back to the
beginning of the current line as we ought. */
if ((nlines < 0 && IT_CHARPOS (it) > 0)
@@ -2187,6 +2188,7 @@ whether or not it is currently displayed in some window.
*/)
else if (overshoot_handled)
{
it.vpos = vpos_init;
+ it.current_y = 0;
move_it_by_lines (&it, min (PTRDIFF_MAX, nlines));
}
else
@@ -2200,6 +2202,7 @@ whether or not it is currently displayed in some window.
*/)
while (IT_CHARPOS (it) <= it_start)
{
it.vpos = 0;
+ it.current_y = 0;
move_it_by_lines (&it, 1);
}
if (nlines > 1)
@@ -2208,6 +2211,7 @@ whether or not it is currently displayed in some window.
*/)
else /* it_start = ZV */
{
it.vpos = 0;
+ it.current_y = 0;
move_it_by_lines (&it, min (PTRDIFF_MAX, nlines));
/* We could have some display or overlay string at ZV,
in which case it.vpos will be nonzero now, while
diff --git a/src/xdisp.c b/src/xdisp.c
index 2d0d677..d05eca1 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -8609,8 +8609,7 @@ move_it_in_display_line_to (struct it *it,
&& it->dpvec + it->current.dpvec_index + 1 >= it->dpend)))
/* If there's a line-/wrap-prefix, handle it. */
- if (it->hpos == 0 && it->method == GET_FROM_BUFFER
- && it->current_y < it->last_visible_y)
+ if (it->hpos == 0 && it->method == GET_FROM_BUFFER)
handle_line_prefix (it);
if (IT_CHARPOS (*it) < CHARPOS (this_line_min_pos))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 3a1e3b4: Fix vertical-movement in buffers with wrap-prefix,
Eli Zaretskii <=