]> git.eshelyaron.com Git - emacs.git/commitdiff
Draw text under filled box cursor in inverted color (Bug#7479).
authorJan Djärv <jan.h.d@swipnet.se>
Thu, 2 Dec 2010 08:24:16 +0000 (09:24 +0100)
committerJan Djärv <jan.h.d@swipnet.se>
Thu, 2 Dec 2010 08:24:16 +0000 (09:24 +0100)
* src/nsterm.m (ns_draw_glyph_string): Switch fore- and background if
drawing text under filled box cursor.

src/ChangeLog
src/nsterm.m

index b1d67c9c31fcfffb867c8c1246d28cebca81e7de..83d6d4c6e8842aba1c5fa30200914c331bcd1693 100644 (file)
@@ -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;
index 3adb67717d52d8e131f8a689834dfdd450ab982a..128c9de86a0c9e4fd41c055b569314f7daad7583 100644 (file)
@@ -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;