Commit 29533e48 authored by Alexandre Julliard's avatar Alexandre Julliard

wineconsole: Leave room for wide characters only when using a DBCS codepage.

parent a8511a3e
...@@ -449,6 +449,7 @@ HFONT WCUSER_CopyFont(struct config_data* config, HWND hWnd, const LOGFONTW* lf, ...@@ -449,6 +449,7 @@ HFONT WCUSER_CopyFont(struct config_data* config, HWND hWnd, const LOGFONTW* lf,
TEXTMETRICW tm; TEXTMETRICW tm;
HDC hDC; HDC hDC;
HFONT hFont, hOldFont; HFONT hFont, hOldFont;
CPINFO cpinfo;
if (!(hDC = GetDC(hWnd))) return NULL; if (!(hDC = GetDC(hWnd))) return NULL;
if (!(hFont = CreateFontIndirectW(lf))) if (!(hFont = CreateFontIndirectW(lf)))
...@@ -461,12 +462,16 @@ HFONT WCUSER_CopyFont(struct config_data* config, HWND hWnd, const LOGFONTW* lf, ...@@ -461,12 +462,16 @@ HFONT WCUSER_CopyFont(struct config_data* config, HWND hWnd, const LOGFONTW* lf,
SelectObject(hDC, hOldFont); SelectObject(hDC, hOldFont);
ReleaseDC(hWnd, hDC); ReleaseDC(hWnd, hDC);
config->cell_width = tm.tmMaxCharWidth; config->cell_width = tm.tmAveCharWidth;
config->cell_height = tm.tmHeight + tm.tmExternalLeading; config->cell_height = tm.tmHeight + tm.tmExternalLeading;
config->font_weight = tm.tmWeight; config->font_weight = tm.tmWeight;
lstrcpyW(config->face_name, lf->lfFaceName); lstrcpyW(config->face_name, lf->lfFaceName);
if (el) *el = tm.tmExternalLeading; if (el) *el = tm.tmExternalLeading;
/* FIXME: use maximum width for DBCS codepages since some chars take two cells */
if (GetCPInfo( GetConsoleOutputCP(), &cpinfo ) && cpinfo.MaxCharSize > 1)
config->cell_width = tm.tmMaxCharWidth;
return hFont; return hFont;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment