mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Gfx: Make D2D acknowledge trailing whitespace followed by a NBSP/MMSP
This hacky workaround makes D2D behavior consistent with GDI+.
This commit is contained in:
parent
180adbc759
commit
176a9414f5
@ -387,6 +387,26 @@ bool MeterString::Update()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ugly hack to make D2D render trailing spaces followed by a non-breaking space correctly.
|
||||||
|
// By default, D2D ignores all trailing whitespace. Both GDI+ and D2D, however, acknowledge the
|
||||||
|
// presense of the zero-width space (and give it a width of 0px), so we append the zero-width
|
||||||
|
// space after each non-breaking space.
|
||||||
|
size_t pos = 0;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
const WCHAR spaceChars[] =
|
||||||
|
{
|
||||||
|
L'\u00A0', // No-Break Space
|
||||||
|
L'\u205F' // Medium Mathematical Space
|
||||||
|
};
|
||||||
|
|
||||||
|
pos = m_String.find_first_of(spaceChars, pos, _countof(spaceChars));
|
||||||
|
if (pos == std::wstring::npos) break;
|
||||||
|
|
||||||
|
m_String.insert(pos + 1, 1, L'\u200B');
|
||||||
|
pos += 2;
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_WDefined || !m_HDefined)
|
if (!m_WDefined || !m_HDefined)
|
||||||
{
|
{
|
||||||
// Calculate the text size
|
// Calculate the text size
|
||||||
|
Loading…
Reference in New Issue
Block a user