Mercurial > emacs
changeset 109843:1ada063020ba
Fix display of bar cursor on right-to-left text.
xterm.c (x_draw_bar_cursor):
w32term.c (x_draw_bar_cursor): If the character under cursor is
R2L, draw the bar cursor on its right rather than on its left.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Wed, 18 Aug 2010 19:42:06 +0300 |
parents | ecdbd21826de |
children | 7d60b9e85349 |
files | src/ChangeLog src/w32term.c src/xterm.c |
diffstat | 3 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Wed Aug 18 15:12:34 2010 +0200 +++ b/src/ChangeLog Wed Aug 18 19:42:06 2010 +0300 @@ -1,3 +1,9 @@ +2010-08-18 Eli Zaretskii <eliz@gnu.org> + + * xterm.c (x_draw_bar_cursor): + * w32term.c (x_draw_bar_cursor): If the character under cursor is + R2L, draw the bar cursor on its right rather than on its left. + 2010-08-18 Stefan Monnier <monnier@iro.umontreal.ca> * eval.c (Fdefmacro): Only obey one declaration.
--- a/src/w32term.c Wed Aug 18 15:12:34 2010 +0200 +++ b/src/w32term.c Wed Aug 18 19:42:06 2010 +0300 @@ -4897,6 +4897,11 @@ w->phys_cursor_width = width; + /* If the character under cursor is R2L, draw the bar cursor + on the right of its glyph, rather than on the left. */ + if ((cursor_glyph->resolved_level & 1) != 0) + x += cursor_glyph->pixel_width - width; + w32_fill_area (f, hdc, cursor_color, x, WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y), width, row->height);
--- a/src/xterm.c Wed Aug 18 15:12:34 2010 +0200 +++ b/src/xterm.c Wed Aug 18 19:42:06 2010 +0300 @@ -7158,6 +7158,11 @@ w->phys_cursor_width = width; + /* If the character under cursor is R2L, draw the bar cursor + on the right of its glyph, rather than on the left. */ + if ((cursor_glyph->resolved_level & 1) != 0) + x += cursor_glyph->pixel_width - width; + XFillRectangle (dpy, window, gc, WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x), WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y),