diff options
Diffstat (limited to 'pango')
-rw-r--r-- | pango/Makefile.am | 7 | ||||
-rw-r--r-- | pango/makefile.mingw | 4 | ||||
-rw-r--r-- | pango/pangowin32-fontmap.c | 10 | ||||
-rw-r--r-- | pango/pangowin32-private.h | 2 | ||||
-rw-r--r-- | pango/pangowin32.c | 12 | ||||
-rw-r--r-- | pango/pangox.c | 4 |
6 files changed, 26 insertions, 13 deletions
diff --git a/pango/Makefile.am b/pango/Makefile.am index 99888ace..ee780e98 100644 --- a/pango/Makefile.am +++ b/pango/Makefile.am @@ -66,3 +66,10 @@ pango_querymodules_SOURCES = \ querymodules.c pango_querymodules_LDADD = libpangox.la libpango.la $(GLIB_LIBS) $(FRIBIDI_LIBS) $(UNICODE_LIBS) $(X_LIBS) +EXTRA_DIST = \ + pangowin32.h \ + pangowin32.c \ + pangowin32-private.h \ + pangowin32-fontcache.c \ + pangowin32-fontmap.c + diff --git a/pango/makefile.mingw b/pango/makefile.mingw index e32f72f0..63ef30ea 100644 --- a/pango/makefile.mingw +++ b/pango/makefile.mingw @@ -48,10 +48,10 @@ module-defs.c : module-defs.c.win32 cp $< $@ pango-$(PANGO_VER).dll : $(PANGO_OBJS) pango.def - $(GLIB)/build-dll pango $(PANGO_VER) pango.def $(PANGO_OBJS) $(GLIB_LIBS) $(LIBICONV_LIBS) $(FRIBIDI_LIBS) + $(GLIB)/build-dll pango $(PANGO_VER) pango.def $(OPTIMIZE) $(PANGO_OBJS) $(GLIB_LIBS) $(LIBICONV_LIBS) $(FRIBIDI_LIBS) pangowin32-$(PANGO_VER).dll : $(PANGOWIN32_OBJS) pangowin32.def - $(GLIB)/build-dll pangowin32 $(PANGO_VER) pangowin32.def $(PANGOWIN32_OBJS) -L . -lpango-$(PANGO_VER) $(GLIB_LIBS) $(FRIBIDI_LIBS) -lgdi32 + $(GLIB)/build-dll pangowin32 $(PANGO_VER) pangowin32.def $(OPTIMIZE) $(PANGOWIN32_OBJS) -L . -lpango-$(PANGO_VER) $(GLIB_LIBS) $(FRIBIDI_LIBS) -lgdi32 pango-querymodules.exe : $(PANGO_QUERYMODULES_OBJS) pango-$(PANGO_VER).dll pangowin32-$(PANGO_VER).dll $(CC) -o $@ $(PANGO_QUERYMODULES_OBJS) -L . -lpango-$(PANGO_VER) $(GLIB_LIBS) diff --git a/pango/pangowin32-fontmap.c b/pango/pangowin32-fontmap.c index a7b6cde4..85298885 100644 --- a/pango/pangowin32-fontmap.c +++ b/pango/pangowin32-fontmap.c @@ -235,6 +235,7 @@ PangoFontMap * pango_win32_font_map_for_display (void) { LOGFONT logfont; + RECT rect; /* Make sure that the type system is initialized */ g_type_init(); @@ -253,7 +254,10 @@ pango_win32_font_map_for_display (void) pango_win32_font_map_read_aliases (fontmap); - fontmap->resolution = 0; /* ??? */ + SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0); + fontmap->resolution = + (PANGO_SCALE * 72.27 / 25.4) * ((double) GetDeviceCaps (pango_win32_hdc, HORZSIZE) / + (rect.right - rect.left)); return PANGO_FONT_MAP (fontmap); } @@ -1056,6 +1060,8 @@ pango_win32_font_map_read_alias_file (PangoWin32FontMap *win32fontmap, else font_entry->lfp[i].lfWeight = FW_HEAVY; + font_entry->lfp[i].lfQuality = ANTIALIASED_QUALITY; + /* Stretch ? */ /* Charset is ignored anyway when used with the widechar @@ -1324,7 +1330,9 @@ pango_win32_make_matching_logfont (PangoFontMap *fontmap, /* OK, we have a match; let's modify it to fit this size */ result = g_new (LOGFONT, 1); + *result = *closest_match; result->lfHeight = (int)((double)size / win32fontmap->resolution + 0.5); + result->lfWidth = 0; } return result; diff --git a/pango/pangowin32-private.h b/pango/pangowin32-private.h index 78d459a3..15c849b7 100644 --- a/pango/pangowin32-private.h +++ b/pango/pangowin32-private.h @@ -35,8 +35,6 @@ #define FS_VIETNAMESE 0x100 #endif -#define PANGO_NOTE(x) x - typedef struct _PangoWin32Font PangoWin32Font; typedef struct _PangoWin32FontEntry PangoWin32FontEntry; typedef struct _PangoWin32SubfontInfo PangoWin32SubfontInfo; diff --git a/pango/pangowin32.c b/pango/pangowin32.c index 2147fef2..a07ca509 100644 --- a/pango/pangowin32.c +++ b/pango/pangowin32.c @@ -926,7 +926,7 @@ pango_win32_list_subfonts (PangoFont *font, gboolean subfont_has_glyph (PangoWin32SubfontInfo *info, - wchar_t c) + wchar_t wc) { struct { @@ -936,6 +936,7 @@ subfont_has_glyph (PangoWin32SubfontInfo *info, DIBSECTION ds; TEXTMETRIC tm; HFONT hfont; + wchar_t default_wc; if (info->buf_hbm == NULL) { @@ -980,8 +981,8 @@ subfont_has_glyph (PangoWin32SubfontInfo *info, FillRect (info->buf_hdc, &info->buf_rect, white_brush); info->oldfont = SelectObject (info->buf_hdc, hfont); - c = tm.tmDefaultChar; - TextOutW (info->buf_hdc, info->buf_x, info->buf_y, &c, 1); + default_wc = tm.tmDefaultChar; + TextOutW (info->buf_hdc, info->buf_x, info->buf_y, &default_wc, 1); info->buf_hbm = CreateDIBSection (info->buf_hdc, (BITMAPINFO *)&bmi, @@ -995,8 +996,7 @@ subfont_has_glyph (PangoWin32SubfontInfo *info, * does not exist in the font. */ FillRect (info->buf_hdc, &info->buf_rect, white_brush); - TextOutW (info->buf_hdc, info->buf_x, info->buf_y, - &c, 1); + TextOutW (info->buf_hdc, info->buf_x, info->buf_y, &wc, 1); return (memcmp (info->buf, info->default_char_buf, info->buf_size) != 0); } @@ -1018,7 +1018,6 @@ pango_win32_has_glyph (PangoFont *font, PangoWin32SubfontInfo *info; guint16 char_index = PANGO_WIN32_GLYPH_INDEX (glyph); guint16 subfont_index = PANGO_WIN32_GLYPH_SUBFONT (glyph); - wchar_t c; info = pango_win32_find_subfont (font, subfont_index); if (!info) @@ -1193,6 +1192,7 @@ pango_win32_find_glyph (PangoFont *font, if (!subfont_has_glyph (info, char_index)) return FALSE; + hfont = pango_win32_get_hfont (font, info); oldfont = SelectObject (pango_win32_hdc, hfont); GetTextExtentPoint32W (pango_win32_hdc, &char_index, 1, &size); SelectObject (pango_win32_hdc, oldfont); diff --git a/pango/pangox.c b/pango/pangox.c index c9388fef..7aa3b638 100644 --- a/pango/pangox.c +++ b/pango/pangox.c @@ -574,7 +574,7 @@ LangInfo lang_texts[] = { { "eo", "Esperanto Saluton" }, { "es", "Spanish (Español) ¡Hola!" }, { "et", "Estonian Tere, Tervist" }, - { "fi", "Finnish (Suomi) Hei" }, + { "fi", "Finnish (Suomi) Hei, Hyvää päivää" }, { "fr", "French (Français)" }, { "de", "German Grüß Gott" }, { "iw", "Hebrew שלום" }, @@ -587,7 +587,7 @@ LangInfo lang_texts[] = { { "pl", "Polish Dzień dobry, Hej" }, { "ru", "Russian (Русский)" }, { "sk", "Slovak Dobrý deň" }, - { "sv", "Swedish (Svenska) Hej, Goddag" }, + { "sv", "Swedish (Svenska) Hej på dej, Goddag" }, { "tr", "Turkish (Türkçe) Merhaba" }, { "zh", "Chinese (中文,普通话,汉语)" } }; |