summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/nsterm.m14
2 files changed, 19 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b1d67c9c31f..83d6d4c6e88 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2010-12-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_draw_glyph_string): Switch fore- and background if
+ drawing text under filled box cursor (Bug#7479).
+
2010-11-27 Kenichi Handa <handa@m17n.org>
* charset.c (emacs_mule_charset): Make it an array of charset ID;
diff --git a/src/nsterm.m b/src/nsterm.m
index 3adb67717d5..128c9de86a0 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -2996,11 +2996,25 @@ ns_draw_glyph_string (struct glyph_string *s)
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;