aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2012-06-16 14:47:44 +0300
committerEli Zaretskii2012-06-16 14:47:44 +0300
commit946fdb736dc076e181a3e82cfd4cc307cc061114 (patch)
treeb98760811ae5ececc48ec0995d3af11647ad5f08
parent1097afe4554bd14af9817100d9a53d6be628656e (diff)
downloademacs-946fdb736dc076e181a3e82cfd4cc307cc061114.tar.gz
emacs-946fdb736dc076e181a3e82cfd4cc307cc061114.zip
Fix bug #11720 with cursor positioning in outline-mode and Org buffers.
src/xdisp.c (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not the rightmost.
-rw-r--r--src/ChangeLog2
-rw-r--r--src/xdisp.c9
2 files changed, 5 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 3f73b1ad702..61a2b3d78f3 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -6,6 +6,8 @@
6 row. 6 row.
7 (handle_face_prop): Use chunk-relative overlay string index when 7 (handle_face_prop): Use chunk-relative overlay string index when
8 indexing into it->string_overlays array. (Bug#11653) 8 indexing into it->string_overlays array. (Bug#11653)
9 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
10 the rightmost. (Bug#11720)
9 11
102012-06-16 Andreas Schwab <schwab@linux-m68k.org> 122012-06-16 Andreas Schwab <schwab@linux-m68k.org>
11 13
diff --git a/src/xdisp.c b/src/xdisp.c
index aa130c5d50a..04baeea9706 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -13937,16 +13937,13 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
13937 break; 13937 break;
13938 } 13938 }
13939 /* See if we've found a better approximation to 13939 /* See if we've found a better approximation to
13940 POS_BEFORE or to POS_AFTER. Note that we want the 13940 POS_BEFORE or to POS_AFTER. */
13941 first (leftmost) glyph of all those that are the
13942 closest from below, and the last (rightmost) of all
13943 those from above. */
13944 if (0 > dpos && dpos > pos_before - pt_old) 13941 if (0 > dpos && dpos > pos_before - pt_old)
13945 { 13942 {
13946 pos_before = glyph->charpos; 13943 pos_before = glyph->charpos;
13947 glyph_before = glyph; 13944 glyph_before = glyph;
13948 } 13945 }
13949 else if (0 < dpos && dpos <= pos_after - pt_old) 13946 else if (0 < dpos && dpos < pos_after - pt_old)
13950 { 13947 {
13951 pos_after = glyph->charpos; 13948 pos_after = glyph->charpos;
13952 glyph_after = glyph; 13949 glyph_after = glyph;
@@ -14030,7 +14027,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
14030 pos_before = glyph->charpos; 14027 pos_before = glyph->charpos;
14031 glyph_before = glyph; 14028 glyph_before = glyph;
14032 } 14029 }
14033 else if (0 < dpos && dpos <= pos_after - pt_old) 14030 else if (0 < dpos && dpos < pos_after - pt_old)
14034 { 14031 {
14035 pos_after = glyph->charpos; 14032 pos_after = glyph->charpos;
14036 glyph_after = glyph; 14033 glyph_after = glyph;