diff options
| author | Eli Zaretskii | 2012-06-16 14:47:44 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2012-06-16 14:47:44 +0300 |
| commit | 946fdb736dc076e181a3e82cfd4cc307cc061114 (patch) | |
| tree | b98760811ae5ececc48ec0995d3af11647ad5f08 | |
| parent | 1097afe4554bd14af9817100d9a53d6be628656e (diff) | |
| download | emacs-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/ChangeLog | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 9 |
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 | ||
| 10 | 2012-06-16 Andreas Schwab <schwab@linux-m68k.org> | 12 | 2012-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; |