• R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revision10284 (tree)
Time2022-09-24 23:19:15
Authorzmatsuo

Log Message

設定ダイアログのカラーパレット変更で正しくない色番号が変更されるので修正

ticket #45559

Change Summary

Incremental Difference

--- branches/4-stable/doc/en/html/about/history.html (revision 10283)
+++ branches/4-stable/doc/en/html/about/history.html (revision 10284)
@@ -63,6 +63,7 @@
6363 <li>Fixed wrong value is written to VTReverseColor when saving TERATERM.INI during reverse video.</li>
6464 <li>Fixed problem with color number 1-7 and 9-15 are replaced in sequence OCS 4.
6565 <!--li>TERATERM.INI の MouseCursor の設定値が小文字だと Additional settings ダイアログに反映されない問題を修正</li-->
66+ <li>Fixed wrong color numbers were changed when the color palette change in Visual Tab in Additional settings dialog.</li>
6667 </ul>
6768 </li>
6869
--- branches/4-stable/doc/ja/html/about/history.html (revision 10283)
+++ branches/4-stable/doc/ja/html/about/history.html (revision 10284)
@@ -63,6 +63,7 @@
6363 <li>反転表示時にTERATERM.INIを保存すると、VTReverseColor に誤った値が書き込まれる問題を修正した。</li>
6464 <li>シーケンス OSC 4 の色番号 1-7と9-15が入れ替わっていた問題を修正した。</li>
6565 <li>TERATERM.INI の MouseCursor の設定値が小文字だと Additional settings ダイアログに反映されない問題を修正</li>
66+ <li>その他の設定ダイアログの表示タブのカラーパレット変更で正しくない色番号が変更される問題を修正した。</li>
6667 </ul>
6768 </li>
6869
--- branches/4-stable/teraterm/teraterm/addsetting.cpp (revision 10283)
+++ branches/4-stable/teraterm/teraterm/addsetting.cpp (revision 10284)
@@ -40,6 +40,7 @@
4040 #define _CRTDBG_MAP_ALLOC
4141 #include <stdlib.h>
4242 #include <crtdbg.h>
43+#include <assert.h>
4344
4445 #include "teraterm.h"
4546 #include "tttypes.h"
@@ -62,9 +63,29 @@
6263 };
6364 #define MOUSE_CURSOR_MAX (sizeof(MouseCursor)/sizeof(MouseCursor[0]) - 1)
6465
66+/**
67+ * ANSI Color の index を変換する
68+ * ts.ANSIColor と 256色カラー で異なっている
69+ * 1-7 ⇒ 9-15
70+ * 9-15 ⇒ 1-7
71+ */
72+static int ConvertColorIndex(int index)
73+{
74+ if (index > 15) {
75+ assert(FALSE);
76+ return index;
77+ }
78+ else if (index == 0 || index == 8) {
79+ return index;
80+ }
81+ else {
82+ return index ^ 8;
83+ }
84+}
85+
6586 void CVisualPropPageDlg::SetupRGBbox(int index)
6687 {
67- COLORREF Color = ts.ANSIColor[index];
88+ COLORREF Color = ts.ANSIColor[ConvertColorIndex(index)];
6889 BYTE c;
6990
7091 c = GetRValue(Color);
@@ -1021,7 +1042,7 @@
10211042 }
10221043
10231044 // OK を押さなくても設定が保存されている
1024- ts.ANSIColor[sel] = RGB(r, g, b);
1045+ ts.ANSIColor[ConvertColorIndex(sel)] = RGB(r, g, b);
10251046
10261047 ::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE);
10271048 }
Show on old repository browser