[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r115527: Fix bug #16148 with visual-mode cursor moti
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] trunk r115527: Fix bug #16148 with visual-mode cursor motion and whitespace-newline-mode. |
Date: |
Sat, 14 Dec 2013 19:33:32 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 115527
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/16148
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sat 2013-12-14 21:32:50 +0200
message:
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.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/xdisp.c xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-12-14 18:04:09 +0000
+++ b/src/ChangeLog 2013-12-14 19:32:50 +0000
@@ -1,3 +1,9 @@
+2013-12-14 Eli Zaretskii <address@hidden>
+
+ * 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 <address@hidden>
* gnutls.c: Replace `:verify_hostname_error' with `:verify_error',
=== modified file 'src/xdisp.c'
--- a/src/xdisp.c 2013-12-10 02:32:52 +0000
+++ b/src/xdisp.c 2013-12-14 19:32:50 +0000
@@ -20505,11 +20505,12 @@
SET_TEXT_POS (pt, PT, PT_BYTE);
start_display (&it, w, pt);
- if (it.cmp_it.id < 0
- && it.method == GET_FROM_STRING
- && it.area == TEXT_AREA
- && it.string_from_display_prop_p
- && (it.sp > 0 && it.stack[it.sp - 1].method == GET_FROM_BUFFER))
+ if ((it.cmp_it.id < 0
+ && it.method == GET_FROM_STRING
+ && it.area == TEXT_AREA
+ && it.string_from_display_prop_p
+ && (it.sp > 0 && it.stack[it.sp - 1].method == GET_FROM_BUFFER))
+ || it.method == GET_FROM_DISPLAY_VECTOR)
overshoot_expected = true;
/* Find the X coordinate of point. We start from the beginning
@@ -20553,7 +20554,12 @@
glyph to the left of point, so we need to correct the X
coordinate. */
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
right of point. On TTY frames, all characters have the same
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r115527: Fix bug #16148 with visual-mode cursor motion and whitespace-newline-mode.,
Eli Zaretskii <=