# HG changeset patch # User Jason Rumney # Date 1217603450 0 # Node ID d712a21c7c2a2d784d6745746b2992c1c74ccd1d # Parent 11132aa5cccf26d77e8a3a79517cc8229588c229 (x_draw_composite_glyph_string_foreground): Force use of Unicode output. diff -r 11132aa5cccf -r d712a21c7c2a src/ChangeLog --- a/src/ChangeLog Thu Jul 31 21:12:21 2008 +0000 +++ b/src/ChangeLog Fri Aug 01 15:10:50 2008 +0000 @@ -1,3 +1,8 @@ +2008-08-01 Jason Rumney + + * w32term.c (x_draw_composite_glyph_string_foreground): Force + use of Unicode output. + 2008-07-30 Jan Dj,Ad(Brv * xmenu.c (Fx_menu_bar_open_internal): Use activate_item signal to diff -r 11132aa5cccf -r d712a21c7c2a src/w32term.c --- a/src/w32term.c Thu Jul 31 21:12:21 2008 +0000 +++ b/src/w32term.c Fri Aug 01 15:10:50 2008 +0000 @@ -1631,9 +1631,6 @@ 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 @@ } 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 @@ 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); }