Mercurial > emacs
diff src/w32term.c @ 107991:74557d25410e
Implement cursor on the left fringe for R2L lines.
xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): For R2L lines,
consider the left fringe, not the right one.
(set_cursor_from_row): Don't reverse pos_before and pos_after for
reversed glyph rows. Set cursor.x to negative value when the
cursor might be on the left fringe.
(extend_face_to_end_of_line): Append the stretch glyph only if its
width is positive.
(notice_overwritten_cursor, draw_phys_cursor_glyph)
(erase_phys_cursor): For reversed cursor_row, support cursor on
the left fringe.
w32term.c (w32_draw_window_cursor): For reversed glyph rows,
draw cursor on the left fringe.
xterm.c (x_draw_window_cursor): For reversed glyph rows, draw
cursor on the left fringe.
fringe.c (draw_fringe_bitmap): For reversed glyph rows, allow
cursor on the left fringe.
dispnew.c (update_text_area): Handle reversed desired rows when
the cursor is on the left fringe.
(set_window_cursor_after_update): Limit cursor's hpos by -1 from
below, not by 0, for when the cursor is on the left fringe.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 10 Apr 2010 19:28:30 +0300 |
parents | 912a8c0c9a8a |
children | 2bc9a0c04c87 |
line wrap: on
line diff
--- a/src/w32term.c Sat Apr 10 15:40:35 2010 +0300 +++ b/src/w32term.c Sat Apr 10 19:28:30 2010 +0300 @@ -5136,10 +5136,12 @@ } if (glyph_row->exact_window_width_line_p - && w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA]) + && (glyph_row->reversed_p + ? (w->phys_cursor.hpos < 0) + : (w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA]))) { glyph_row->cursor_in_fringe_p = 1; - draw_fringe_bitmap (w, glyph_row, 0); + draw_fringe_bitmap (w, glyph_row, glyph_row->reversed_p); return; }