[Ttssh2-commit] [8758] DPIの異なるディスプレイをまたいでウィンドウを移動するときターミナルのサイズが変化しないよう修正

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2020年 4月 28日 (火) 00:56:29 JST


Revision: 8758
          https://osdn.net/projects/ttssh2/scm/svn/commits/8758
Author:   zmatsuo
Date:     2020-04-28 00:56:29 +0900 (Tue, 28 Apr 2020)
Log Message:
-----------
DPIの異なるディスプレイをまたいでウィンドウを移動するときターミナルのサイズが変化しないよう修正

- AdjustWindowRectExForDpi() はクライアント領域のサイズからウィンドウサイズを算出する
- スクロールバーはクライアント領域に含まれる
- スクロールバーの表示/非表示をクライアント領域のサイズ計算時に考慮する必要がある

Modified Paths:
--------------
    trunk/teraterm/teraterm/vtwin.cpp

-------------- next part --------------
Modified: trunk/teraterm/teraterm/vtwin.cpp
===================================================================
--- trunk/teraterm/teraterm/vtwin.cpp	2020-04-27 11:19:06 UTC (rev 8757)
+++ trunk/teraterm/teraterm/vtwin.cpp	2020-04-27 15:56:29 UTC (rev 8758)
@@ -6268,6 +6268,19 @@
 		const DWORD Style = (DWORD)::GetWindowLongPtr(m_hWnd, GWL_STYLE);
 		const DWORD ExStyle = (DWORD)::GetWindowLongPtr(m_hWnd, GWL_EXSTYLE);
 		const BOOL bMenu = (ts.PopupMenu != 0) ? FALSE : TRUE;
+		{	// \x83X\x83N\x83\x8D\x81[\x83\x8B\x83o\x81[\x82\xAA\x95\\x8E\xA6\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x8Fꍇ\x82́A
+			// \x83X\x83N\x83\x8A\x81[\x83\x93\x83T\x83C\x83Y(\x83N\x83\x89\x83C\x83A\x83\x93\x83g\x83G\x83\x8A\x83A\x82̃T\x83C\x83Y)\x82ɒlj\xC1\x82\xB7\x82\xE9
+			int min_pos;
+			int max_pos;
+			GetScrollRange(m_hWnd, SB_VERT, &min_pos, &max_pos);
+			if (min_pos != max_pos) {
+				ScreenWidth += GetSystemMetricsForDpi(SM_CXVSCROLL, NewDPI);
+			}
+			GetScrollRange(m_hWnd, SB_HORZ, &min_pos, &max_pos);
+			if (min_pos != max_pos) {
+				ScreenHeight += GetSystemMetricsForDpi(SM_CXHSCROLL, NewDPI);
+			}
+		}
 		RECT Rect = {0, 0, ScreenWidth, ScreenHeight};
 		if (pAdjustWindowRectExForDpi != NULL) {
 			// Windows 10, version 1607+


Ttssh2-commit メーリングリストの案内
Back to archive index