diff --git a/Common/Gfx/Util/DWriteHelpers.cpp b/Common/Gfx/Util/DWriteHelpers.cpp index b01fa228..1ab3c941 100644 --- a/Common/Gfx/Util/DWriteHelpers.cpp +++ b/Common/Gfx/Util/DWriteHelpers.cpp @@ -29,12 +29,20 @@ DWRITE_TEXT_METRICS GetAdjustedDWriteTextLayoutMetrics( DWRITE_TEXT_METRICS metrics; textLayout->GetMetrics(&metrics); - if (gdiEmulation) + if (metrics.width > 0.0f) { - float size = 0.0f; - textLayout->GetFontSize(0, &size); - metrics.width = floor(metrics.width + (size / 2.05f) + (metrics.width / 55.0f) - 0.5f); - metrics.height = floor(metrics.height + (size / 9.25f) + 0.3f); + if (gdiEmulation) + { + float size = 0.0f; + textLayout->GetFontSize(0, &size); + metrics.width = floor(metrics.width + (size / 2.05f) + (metrics.width / 55.0f) - 0.5f); + metrics.height = floor(metrics.height + (size / 9.25f) + 0.3f); + } + } + else + { + // Get rid of the height that DirectWrite assigns to zero-width strings. + metrics.height = 0.0f; } return metrics;