From: Eli Zaretskii Date: Sat, 16 Jun 2012 11:47:44 +0000 (+0300) Subject: Fix bug #11720 with cursor positioning in outline-mode and Org buffers. X-Git-Tag: emacs-24.2.90~1199^2~461 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/946fdb736dc076e181a3e82cfd4cc307cc061114 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. --- diff --git a/src/ChangeLog b/src/ChangeLog index 3f73b1ad70..61a2b3d78f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -6,6 +6,8 @@ row. (handle_face_prop): Use chunk-relative overlay string index when indexing into it->string_overlays array. (Bug#11653) + (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not + the rightmost. (Bug#11720) 2012-06-16 Andreas Schwab diff --git a/src/xdisp.c b/src/xdisp.c index aa130c5d50..04baeea970 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13937,16 +13937,13 @@ set_cursor_from_row (struct window *w, struct glyph_row *row, break; } /* See if we've found a better approximation to - POS_BEFORE or to POS_AFTER. Note that we want the - first (leftmost) glyph of all those that are the - closest from below, and the last (rightmost) of all - those from above. */ + POS_BEFORE or to POS_AFTER. */ if (0 > dpos && dpos > pos_before - pt_old) { pos_before = glyph->charpos; glyph_before = glyph; } - else if (0 < dpos && dpos <= pos_after - pt_old) + else if (0 < dpos && dpos < pos_after - pt_old) { pos_after = glyph->charpos; glyph_after = glyph; @@ -14030,7 +14027,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row, pos_before = glyph->charpos; glyph_before = glyph; } - else if (0 < dpos && dpos <= pos_after - pt_old) + else if (0 < dpos && dpos < pos_after - pt_old) { pos_after = glyph->charpos; glyph_after = glyph;