- DejaVu Sans Mono seems to have a bug which makes Windows and Arwinss report double max char width as compared to a real char width. Since only a monospace font could be used, measure exact char width using GetTextExtentPoint32W and use that value.

svn path=/trunk/; revision=45319
This commit is contained in:
Aleksey Bragin 2010-01-29 21:02:00 +00:00
parent 38668a867a
commit 1e19f89dbf

View file

@ -685,6 +685,7 @@ GuiConsoleHandleNcCreate(HWND hWnd, CREATESTRUCTW *Create)
HDC Dc;
HFONT OldFont;
TEXTMETRICW Metrics;
SIZE CharSize;
PCSRSS_PROCESS_DATA ProcessData;
HKEY hKey;
@ -762,6 +763,11 @@ GuiConsoleHandleNcCreate(HWND hWnd, CREATESTRUCTW *Create)
}
GuiData->CharWidth = Metrics.tmMaxCharWidth;
GuiData->CharHeight = Metrics.tmHeight + Metrics.tmExternalLeading;
/* Measure real char width more precisely if possible. */
if (GetTextExtentPoint32W(Dc, L"R", 1, &CharSize))
GuiData->CharWidth = CharSize.cx;
SelectObject(Dc, OldFont);
ReleaseDC(hWnd, Dc);