Revision: 7270 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/7270 Author: doda Date: 2018-11-21 17:45:21 +0900 (Wed, 21 Nov 2018) Log Message: ----------- dttermのウィンドウ操作シーケンス(14:ウィンドウサイズ報告)の動作を更新 - CSI 14 t で送るのをウィンドウのサイズからクライアント領域のサイズに変更 - 二番目のパラメータ(Ps2)の値を見るように変更 - Ps2 が 0 または 1 の時は Ps2 が無い時の動作に合わせた - Ps2 が 2 の時はウィンドウサイズを送るようにした - Ps2 がそれ以外の値の時は応答しないようにした 最後の以外は xterm の動作への追従。 xterm では Ps2 が 0 - 2 以外の時はクライアント領域のサイズを送っているが、 Tera Term ではあえて無視する。 Modified Paths: -------------- trunk/teraterm/teraterm/vtdisp.c trunk/teraterm/teraterm/vtdisp.h trunk/teraterm/teraterm/vtterm.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/vtdisp.c =================================================================== --- trunk/teraterm/teraterm/vtdisp.c 2018-11-21 08:45:17 UTC (rev 7269) +++ trunk/teraterm/teraterm/vtdisp.c 2018-11-21 08:45:21 UTC (rev 7270) @@ -3800,10 +3800,15 @@ return; } -void DispGetWindowSize(int *width, int *height) { +void DispGetWindowSize(int *width, int *height, BOOL client) { RECT r; - GetWindowRect(HVTWin, &r); + if (client) { + GetClientRect(HVTWin, &r); + } + else { + GetWindowRect(HVTWin, &r); + } *width = r.right - r.left; *height = r.bottom - r.top; Modified: trunk/teraterm/teraterm/vtdisp.h =================================================================== --- trunk/teraterm/teraterm/vtdisp.h 2018-11-21 08:45:17 UTC (rev 7269) +++ trunk/teraterm/teraterm/vtdisp.h 2018-11-21 08:45:21 UTC (rev 7270) @@ -112,7 +112,7 @@ void DispResizeWin(int w, int h); BOOL DispWindowIconified(); void DispGetWindowPos(int *x, int *y); -void DispGetWindowSize(int *width, int *height); +void DispGetWindowSize(int *width, int *height, BOOL client); void DispGetRootWinSize(int *x, int *y); int DispFindClosestColor(int red, int green, int blue); void UpdateBGBrush(void); Modified: trunk/teraterm/teraterm/vtterm.c =================================================================== --- trunk/teraterm/teraterm/vtterm.c 2018-11-21 08:45:17 UTC (rev 7269) +++ trunk/teraterm/teraterm/vtterm.c 2018-11-21 08:45:21 UTC (rev 7270) @@ -2426,7 +2426,19 @@ case 14: /* get window size */ if (ts.WindowFlag & WF_WINDOWREPORT) { - DispGetWindowSize(&x, &y); + RequiredParams(2); + switch (Param[2]) { + case 0: + case 1: + DispGetWindowSize(&x, &y, TRUE); + break; + case 2: + DispGetWindowSize(&x, &y, FALSE); + break; + default: + return; + } + len = _snprintf_s_l(Report, sizeof(Report), _TRUNCATE, "4;%d;%dt", CLocale, y, x); SendCSIstr(Report, len); }