# HG changeset patch # User Jan D. # Date 1291278256 -3600 # Node ID df9e4ed95f9bc560c0c6716d8779749511fdf4b6 # Parent 850903c89a9ff36658cd99dff5b4c2b4313c778f Draw text under filled box cursor in inverted color (Bug#7479). * src/nsterm.m (ns_draw_glyph_string): Switch fore- and background if drawing text under filled box cursor. diff -r 850903c89a9f -r df9e4ed95f9b src/ChangeLog --- a/src/ChangeLog Tue Nov 30 12:01:47 2010 +0000 +++ b/src/ChangeLog Thu Dec 02 09:24:16 2010 +0100 @@ -1,3 +1,8 @@ +2010-12-02 Jan Djärv + + * nsterm.m (ns_draw_glyph_string): Switch fore- and background if + drawing text under filled box cursor (Bug#7479). + 2010-11-27 Kenichi Handa * charset.c (emacs_mule_charset): Make it an array of charset ID; diff -r 850903c89a9f -r df9e4ed95f9b src/nsterm.m --- a/src/nsterm.m Tue Nov 30 12:01:47 2010 +0000 +++ b/src/nsterm.m Thu Dec 02 09:24:16 2010 +0100 @@ -2996,11 +2996,25 @@ if (ns_tmp_font == NULL) ns_tmp_font = (struct nsfont_info *)FRAME_FONT (s->f); + if (s->hl == DRAW_CURSOR && s->w->phys_cursor_type == FILLED_BOX_CURSOR) + { + unsigned long tmp = NS_FACE_BACKGROUND (s->face); + NS_FACE_BACKGROUND (s->face) = NS_FACE_FOREGROUND (s->face); + NS_FACE_FOREGROUND (s->face) = tmp; + } + ns_tmp_font->font.driver->draw (s, 0, s->nchars, s->x, s->y, (ns_tmp_flags == NS_DUMPGLYPH_NORMAL && !s->background_filled_p) || ns_tmp_flags == NS_DUMPGLYPH_MOUSEFACE); + if (s->hl == DRAW_CURSOR && s->w->phys_cursor_type == FILLED_BOX_CURSOR) + { + unsigned long tmp = NS_FACE_BACKGROUND (s->face); + NS_FACE_BACKGROUND (s->face) = NS_FACE_FOREGROUND (s->face); + NS_FACE_FOREGROUND (s->face) = tmp; + } + ns_unfocus (s->f); break;