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.
This commit is contained in:
Eli Zaretskii 2012-06-16 14:47:44 +03:00
parent 1097afe455
commit 946fdb736d
2 changed files with 5 additions and 6 deletions

View file

@ -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 <schwab@linux-m68k.org>

View file

@ -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;