* nsterm.m (ns_draw_window_cursor): Draw BAR_CURSOR correct for R2L.
This commit is contained in:
parent
e2046ecf21
commit
4520b858c1
2 changed files with 16 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
2010-08-29 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* nsterm.m (ns_draw_window_cursor): Draw BAR_CURSOR correct for R2L.
|
||||
|
||||
2010-08-26 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* xdisp.c (compute_stop_pos): Pay attention to bidi scan direction
|
||||
|
|
12
src/nsterm.m
12
src/nsterm.m
|
@ -2251,6 +2251,11 @@ External call (RIF): draw cursor
|
|||
struct frame *f = WINDOW_XFRAME (w);
|
||||
struct glyph *phys_cursor_glyph;
|
||||
int overspill;
|
||||
struct glyph *cursor_glyph;
|
||||
|
||||
/* If cursor is out of bounds, don't draw garbage. This can happen
|
||||
in mini-buffer windows when switching between echo area glyphs
|
||||
and mini-buffer. */
|
||||
|
||||
NSTRACE (dumpcursor);
|
||||
//fprintf(stderr, "drawcursor (%d,%d) activep = %d\tonp = %d\tc_type = %d\twidth = %d\n",x,y, active_p,on_p,cursor_type,cursor_width);
|
||||
|
@ -2328,6 +2333,13 @@ External call (RIF): draw cursor
|
|||
case BAR_CURSOR:
|
||||
s = r;
|
||||
s.size.width = min (cursor_width, 2); //FIXME(see above)
|
||||
|
||||
/* If the character under cursor is R2L, draw the bar cursor
|
||||
on the right of its glyph, rather than on the left. */
|
||||
cursor_glyph = get_phys_cursor_glyph (w);
|
||||
if ((cursor_glyph->resolved_level & 1) != 0)
|
||||
s.origin.x += cursor_glyph->pixel_width - s.size.width;
|
||||
|
||||
NSRectFill (s);
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue