Commit 2897da4d authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Fix bug #16148 with visual-mode cursor motion and whitespace-newline-mode.

 src/xdisp.c (Fmove_point_visually): Expect overshoot in move_it_to
 when character at point is displayed from a display vector.
parent 31b4827e
2013-12-14 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (Fmove_point_visually): Expect overshoot in move_it_to
when character at point is displayed from a display vector.
(Bug#16148)
2013-12-14 Teodor Zlatanov <tzz@lifelogs.com> 2013-12-14 Teodor Zlatanov <tzz@lifelogs.com>
* gnutls.c: Replace `:verify_hostname_error' with `:verify_error', * gnutls.c: Replace `:verify_hostname_error' with `:verify_error',
......
...@@ -20505,11 +20505,12 @@ Value is the new character position of point. */) ...@@ -20505,11 +20505,12 @@ Value is the new character position of point. */)
SET_TEXT_POS (pt, PT, PT_BYTE); SET_TEXT_POS (pt, PT, PT_BYTE);
start_display (&it, w, pt); start_display (&it, w, pt);
   
if (it.cmp_it.id < 0 if ((it.cmp_it.id < 0
&& it.method == GET_FROM_STRING && it.method == GET_FROM_STRING
&& it.area == TEXT_AREA && it.area == TEXT_AREA
&& it.string_from_display_prop_p && it.string_from_display_prop_p
&& (it.sp > 0 && it.stack[it.sp - 1].method == GET_FROM_BUFFER)) && (it.sp > 0 && it.stack[it.sp - 1].method == GET_FROM_BUFFER))
|| it.method == GET_FROM_DISPLAY_VECTOR)
overshoot_expected = true; overshoot_expected = true;
   
/* Find the X coordinate of point. We start from the beginning /* Find the X coordinate of point. We start from the beginning
...@@ -20553,7 +20554,12 @@ Value is the new character position of point. */) ...@@ -20553,7 +20554,12 @@ Value is the new character position of point. */)
glyph to the left of point, so we need to correct the X glyph to the left of point, so we need to correct the X
coordinate. */ coordinate. */
if (overshoot_expected) if (overshoot_expected)
pt_x += pixel_width; {
if (it.bidi_p)
pt_x += pixel_width * it.bidi_it.scan_dir;
else
pt_x += pixel_width;
}
   
/* Compute target X coordinate, either to the left or to the /* Compute target X coordinate, either to the left or to the
right of point. On TTY frames, all characters have the same right of point. On TTY frames, all characters have the same
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment