aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/xdisp.c18
2 files changed, 18 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 081a6b8631c..1422f6b1f68 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12013-12-14 Eli Zaretskii <eliz@gnu.org>
2
3 * xdisp.c (Fmove_point_visually): Expect overshoot in move_it_to
4 when character at point is displayed from a display vector.
5 (Bug#16148)
6
12013-12-14 Teodor Zlatanov <tzz@lifelogs.com> 72013-12-14 Teodor Zlatanov <tzz@lifelogs.com>
2 8
3 * gnutls.c: Replace `:verify_hostname_error' with `:verify_error', 9 * gnutls.c: Replace `:verify_hostname_error' with `:verify_error',
diff --git a/src/xdisp.c b/src/xdisp.c
index 6daa9131154..3974810908a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -20505,11 +20505,12 @@ Value is the new character position of point. */)
20505 SET_TEXT_POS (pt, PT, PT_BYTE); 20505 SET_TEXT_POS (pt, PT, PT_BYTE);
20506 start_display (&it, w, pt); 20506 start_display (&it, w, pt);
20507 20507
20508 if (it.cmp_it.id < 0 20508 if ((it.cmp_it.id < 0
20509 && it.method == GET_FROM_STRING 20509 && it.method == GET_FROM_STRING
20510 && it.area == TEXT_AREA 20510 && it.area == TEXT_AREA
20511 && it.string_from_display_prop_p 20511 && it.string_from_display_prop_p
20512 && (it.sp > 0 && it.stack[it.sp - 1].method == GET_FROM_BUFFER)) 20512 && (it.sp > 0 && it.stack[it.sp - 1].method == GET_FROM_BUFFER))
20513 || it.method == GET_FROM_DISPLAY_VECTOR)
20513 overshoot_expected = true; 20514 overshoot_expected = true;
20514 20515
20515 /* Find the X coordinate of point. We start from the beginning 20516 /* Find the X coordinate of point. We start from the beginning
@@ -20553,7 +20554,12 @@ Value is the new character position of point. */)
20553 glyph to the left of point, so we need to correct the X 20554 glyph to the left of point, so we need to correct the X
20554 coordinate. */ 20555 coordinate. */
20555 if (overshoot_expected) 20556 if (overshoot_expected)
20556 pt_x += pixel_width; 20557 {
20558 if (it.bidi_p)
20559 pt_x += pixel_width * it.bidi_it.scan_dir;
20560 else
20561 pt_x += pixel_width;
20562 }
20557 20563
20558 /* Compute target X coordinate, either to the left or to the 20564 /* Compute target X coordinate, either to the left or to the
20559 right of point. On TTY frames, all characters have the same 20565 right of point. On TTY frames, all characters have the same