summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pango/pangowin32-dwrite-fontmap.cpp2
-rw-r--r--pango/pangowin32.c19
2 files changed, 12 insertions, 9 deletions
diff --git a/pango/pangowin32-dwrite-fontmap.cpp b/pango/pangowin32-dwrite-fontmap.cpp
index a2c03675..8f3a3095 100644
--- a/pango/pangowin32-dwrite-fontmap.cpp
+++ b/pango/pangowin32-dwrite-fontmap.cpp
@@ -424,7 +424,7 @@ pango_win32_font_description_from_logfontw_dwrite (const LOGFONTW *logfontw)
PangoStretch stretch;
PangoWin32DWriteItems *dwrite_items;
- dwrite_items = pango_win32_init_direct_write ();
+ dwrite_items = pango_win32_get_direct_write_items ();
if (dwrite_items == NULL)
return NULL;
diff --git a/pango/pangowin32.c b/pango/pangowin32.c
index 5a26ee98..7b6325a5 100644
--- a/pango/pangowin32.c
+++ b/pango/pangowin32.c
@@ -133,7 +133,6 @@ HDC
_pango_win32_get_display_dc (void)
{
HDC hdc = g_private_get (&display_dc_key);
- PangoWin32DWriteItems *items;
if (hdc == NULL)
{
@@ -154,12 +153,8 @@ _pango_win32_get_display_dc (void)
#endif
}
- items = g_private_get (&dwrite_items);
- if (items == NULL)
- {
- items = pango_win32_init_direct_write ();
- g_private_set (&dwrite_items, items);
- }
+ /* ensure DirectWrite is initialized */
+ pango_win32_get_direct_write_items ();
return hdc;
}
@@ -167,7 +162,15 @@ _pango_win32_get_display_dc (void)
PangoWin32DWriteItems *
pango_win32_get_direct_write_items (void)
{
- return g_private_get (&dwrite_items);
+ PangoWin32DWriteItems *items = g_private_get (&dwrite_items);
+
+ if (items == NULL)
+ {
+ items = pango_win32_init_direct_write ();
+ g_private_set (&dwrite_items, items);
+ }
+
+ return items;
}
/**