diff options
| author | Eli Zaretskii | 2011-07-07 20:48:51 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2011-07-07 20:48:51 +0300 |
| commit | ad3c1639757e8b5aefb490426ca44dad08b74130 (patch) | |
| tree | 7ffb1975240857fb5c1412a329a10691e14a1736 /src | |
| parent | 57b3e30bb29d904180b651422ab58341debe84cb (diff) | |
| download | emacs-ad3c1639757e8b5aefb490426ca44dad08b74130.tar.gz emacs-ad3c1639757e8b5aefb490426ca44dad08b74130.zip | |
Fix another bug with cursor motion around display properties.
Still not quite there yet.
src/xdisp.c (find_row_edges): If ROW->start.pos gives position
smaller than min_pos, use it as ROW->minpos. (Bug#7616)
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/xdisp.c | 9 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 55ff323ab57..74a684df45e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-07-07 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * xdisp.c (find_row_edges): If ROW->start.pos gives position | ||
| 4 | smaller than min_pos, use it as ROW->minpos. (Bug#7616) | ||
| 5 | |||
| 1 | 2011-07-05 Eli Zaretskii <eliz@gnu.org> | 6 | 2011-07-05 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * dispnew.c (buffer_posn_from_coords): Save and restore the bidi | 8 | * dispnew.c (buffer_posn_from_coords): Save and restore the bidi |
| @@ -33,7 +38,7 @@ | |||
| 33 | 2011-07-02 Eli Zaretskii <eliz@gnu.org> | 38 | 2011-07-02 Eli Zaretskii <eliz@gnu.org> |
| 34 | 39 | ||
| 35 | * xdisp.c (reseat_1): Call bidi_init_it to resync the bidi | 40 | * xdisp.c (reseat_1): Call bidi_init_it to resync the bidi |
| 36 | iterator with IT's position. | 41 | iterator with IT's position. (Bug#7616) |
| 37 | (handle_stop, back_to_previous_visible_line_start, reseat_1): | 42 | (handle_stop, back_to_previous_visible_line_start, reseat_1): |
| 38 | Reset the from_disp_prop_p flag. | 43 | Reset the from_disp_prop_p flag. |
| 39 | 44 | ||
diff --git a/src/xdisp.c b/src/xdisp.c index 0281370008c..1cc3e2eaadb 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -17976,12 +17976,13 @@ find_row_edges (struct it *it, struct glyph_row *row, | |||
| 17976 | lines' rows is implemented for bidi-reordered rows. */ | 17976 | lines' rows is implemented for bidi-reordered rows. */ |
| 17977 | 17977 | ||
| 17978 | /* ROW->minpos is the value of min_pos, the minimal buffer position | 17978 | /* ROW->minpos is the value of min_pos, the minimal buffer position |
| 17979 | we have in ROW. */ | 17979 | we have in ROW, or ROW->start.pos if that is smaller. */ |
| 17980 | if (min_pos <= ZV) | 17980 | if (min_pos <= ZV && min_pos < row->start.pos.charpos) |
| 17981 | SET_TEXT_POS (row->minpos, min_pos, min_bpos); | 17981 | SET_TEXT_POS (row->minpos, min_pos, min_bpos); |
| 17982 | else | 17982 | else |
| 17983 | /* We didn't find _any_ valid buffer positions in any of the | 17983 | /* We didn't find buffer positions smaller than ROW->start, or |
| 17984 | glyphs, so we must trust the iterator's computed positions. */ | 17984 | didn't find _any_ valid buffer positions in any of the glyphs, |
| 17985 | so we must trust the iterator's computed positions. */ | ||
| 17985 | row->minpos = row->start.pos; | 17986 | row->minpos = row->start.pos; |
| 17986 | if (max_pos <= 0) | 17987 | if (max_pos <= 0) |
| 17987 | { | 17988 | { |