Revision: 10440 https://osdn.net/projects/ttssh2/scm/svn/commits/10440 Author: zmatsuo Date: 2022-12-27 23:00:54 +0900 (Tue, 27 Dec 2022) Log Message: ----------- フォントダイアログのフォント名が空になる場合があるので修正 - 次の2箇所 - 「設定」メニューの「フォント」の「ダイアログフォント」 - 「その他の設定」の「フォント」タブを選択し、ダイアログフォント - フォント構造体に適切な値を設定するよう修正 ticket #45658 Ticket Links: ------------ https://osdn.net/projects/ttssh2/tracker/detail/45658 Modified Paths: -------------- trunk/teraterm/teraterm/font_pp.cpp trunk/teraterm/teraterm/vtwin.cpp -------------- next part -------------- Modified: trunk/teraterm/teraterm/font_pp.cpp =================================================================== --- trunk/teraterm/teraterm/font_pp.cpp 2022-12-27 13:17:01 UTC (rev 10439) +++ trunk/teraterm/teraterm/font_pp.cpp 2022-12-27 14:00:54 UTC (rev 10440) @@ -60,10 +60,21 @@ static void GetDlgLogFont(HWND hWnd, const TTTSet *ts, LOGFONTW *logfont) { - memset(logfont, 0, sizeof(*logfont)); - logfont->lfHeight = -GetFontPixelFromPoint(hWnd, ts->DialogFontPoint); - wcsncpy_s(logfont->lfFaceName, _countof(logfont->lfFaceName),ts->DialogFontNameW, _TRUNCATE); - logfont->lfCharSet = ts->DialogFontCharSet; + *logfont = {}; + if (ts->DialogFontNameW == NULL || ts->DialogFontNameW[0] == 0) { + // \x83t\x83H\x83\x93\x83g\x82\xAA\x90ݒ肳\x82\xEA\x82Ă\xA2\x82Ȃ\xA9\x82\xC1\x82\xBD\x82\xE7OS\x82̃t\x83H\x83\x93\x83g\x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9 + GetMessageboxFontW(logfont); + } + else { + wcsncpy_s(logfont->lfFaceName, _countof(logfont->lfFaceName), ts->DialogFontNameW, _TRUNCATE); + logfont->lfHeight = -GetFontPixelFromPoint(hWnd, ts->DialogFontPoint); + logfont->lfCharSet = ts->DialogFontCharSet; + logfont->lfWeight = FW_NORMAL; + logfont->lfOutPrecision = OUT_DEFAULT_PRECIS; + logfont->lfClipPrecision = CLIP_DEFAULT_PRECIS; + logfont->lfQuality = DEFAULT_QUALITY; + logfont->lfPitchAndFamily = DEFAULT_PITCH | FF_ROMAN; + } } static void SetDlgLogFont(HWND hWnd, const LOGFONTW *logfont, TTTSet *ts) Modified: trunk/teraterm/teraterm/vtwin.cpp =================================================================== --- trunk/teraterm/teraterm/vtwin.cpp 2022-12-27 13:17:01 UTC (rev 10439) +++ trunk/teraterm/teraterm/vtwin.cpp 2022-12-27 14:00:54 UTC (rev 10440) @@ -4364,12 +4364,20 @@ // LOGFONT\x8F\x80\x94\xF5 memset(&LogFont, 0, sizeof(LogFont)); - wcsncpy_s(LogFont.lfFaceName, _countof(LogFont.lfFaceName), ts.DialogFontNameW, _TRUNCATE); - LogFont.lfHeight = -GetFontPixelFromPoint(m_hWnd, ts.DialogFontPoint); - LogFont.lfCharSet = ts.DialogFontCharSet; - if (LogFont.lfFaceName[0] == 0) { + if (ts.DialogFontNameW == NULL || ts.DialogFontNameW[0] == 0) { + // \x83t\x83H\x83\x93\x83g\x82\xAA\x90ݒ肳\x82\xEA\x82Ă\xA2\x82Ȃ\xA9\x82\xC1\x82\xBD\x82\xE7OS\x90ݒ\xE8\x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9 GetMessageboxFontW(&LogFont); } + else { + wcsncpy_s(LogFont.lfFaceName, _countof(LogFont.lfFaceName), ts.DialogFontNameW, _TRUNCATE); + LogFont.lfHeight = -GetFontPixelFromPoint(m_hWnd, ts.DialogFontPoint); + LogFont.lfCharSet = ts.DialogFontCharSet; + LogFont.lfWeight = FW_NORMAL; + LogFont.lfOutPrecision = OUT_DEFAULT_PRECIS; + LogFont.lfClipPrecision = CLIP_DEFAULT_PRECIS; + LogFont.lfQuality = DEFAULT_QUALITY; + LogFont.lfPitchAndFamily = DEFAULT_PITCH | FF_ROMAN; + } // \x83_\x83C\x83A\x83\x8D\x83O\x95\\x8E\xA6 memset(&cf, 0, sizeof(cf));