]> git.eshelyaron.com Git - emacs.git/commitdiff
(x_draw_composite_glyph_string_foreground): Force use of Unicode output.
authorJason Rumney <jasonr@gnu.org>
Fri, 1 Aug 2008 15:10:50 +0000 (15:10 +0000)
committerJason Rumney <jasonr@gnu.org>
Fri, 1 Aug 2008 15:10:50 +0000 (15:10 +0000)
src/ChangeLog
src/w32term.c

index 71c004d0b54efd4df344fcb2d70edd5167919ebb..4e41e9be4553415497e672f9abfc23f661b4dcc3 100644 (file)
@@ -1,3 +1,8 @@
+2008-08-01  Jason Rumney  <jasonr@gnu.org>
+
+        * w32term.c (x_draw_composite_glyph_string_foreground): Force
+        use of Unicode output.
+
 2008-07-30  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 
        * xmenu.c (Fx_menu_bar_open_internal): Use activate_item signal to
index bfda8e9e9d3b70b8859c756384c4a4e10dba0fed..402f5a212ef74b5b880f80c0fe00d55aec9750cc 100644 (file)
@@ -1631,9 +1631,6 @@ x_draw_composite_glyph_string_foreground (s)
   SetBkMode (s->hdc, TRANSPARENT);
   SetTextAlign (s->hdc, TA_BASELINE | TA_LEFT);
 
-  if (s->font && s->font->hfont)
-    old_font = SelectObject (s->hdc, s->font->hfont);
-
   /* Draw a rectangle for the composition if the font for the very
      first character of the composition could not be loaded.  */
   if (s->font_not_found_p)
@@ -1644,6 +1641,13 @@ x_draw_composite_glyph_string_foreground (s)
     }
   else
     {
+      if (s->font && s->font->hfont)
+        old_font = SelectObject (s->hdc, s->font->hfont);
+
+      /* Because of the way Emacs encodes composite glyphs, the font_type
+         may not be set up yet.  Always use unicode for composite glyphs.  */
+      s->first_glyph->font_type = UNICODE_FONT;
+
       for (i = 0; i < s->nchars; i++, ++s->gidx)
        {
          w32_text_out (s, x + s->cmp->offsets[s->gidx * 2],
@@ -1654,10 +1658,10 @@ x_draw_composite_glyph_string_foreground (s)
                          s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
                          s->char2b + i, 1);
        }
-    }
 
-  if (s->font && s->font->hfont)
-    SelectObject (s->hdc, old_font);
+      if (s->font && s->font->hfont)
+        SelectObject (s->hdc, old_font);
+    }
 }