セッション複製時のウインドウ位置がずれていない
r10186 で修正しました。
この動作ですが、VTPosでX, Y共にCW_USERDEFAULTを指定しているときは妥当な動作だと思います。
ただ、VTPosに特定の座標を設定している場合は、新しい接続から開く時は何枚開いても同じ位置に出るのに、セッション複製のみ位置がずれるのは不自然に思います。
TERATERM.INIでVTPosに特定の位置を指定している場合は常にその位置で開いて欲しいと考えていると思うので、その場合はセッションの複製時にも同じ位置で開くようにできないでしょうか?
新しい接続から開く時は何枚開いても同じ位置に出るのに、
本当にそうですか?私の手元では、新しい接続から開いても同じ位置に出ません。
TERATERM.INIでVTPosに特定の位置を指定している場合は常にその位置で開いて欲しいと考えていると思うので、
2.3 からこのコードになっています。1.4 にも同じコードがあります。
1個目のインスタンスは指定された場所に表示していて、2個目以降のインスタンスでずれるのは重なって見えづらいから、という設計なのではないでしょうか。
それでも変更しますか?
新しい接続から開く時は何枚開いても同じ位置に出るのに、
本当にそうですか?私の手元では、新しい接続から開いても同じ位置に出ません。
すみません、trunkのHEADでは動作が変わったのですね。
上記は4.106での動作の話です。なので、この部分の動作が4.106から変わる事になります。
2.3 からこのコードになっています。1.4 にも同じコードがあります。
2.3ではこの部分によって2枚目以降は位置が変わるのですが、2.3+UTF-8 2.06で常にTERATERM.INIを読み込むようになってからは2枚目以降でもTERATERM.INIのVTPosが使われるようになっています。
18年近く続いた現在の動作を2.3相当に戻すのが妥当かは議論が必要だと思います。
上記の点とは別に、現在のtrunkのHEADには以下の問題が有ります。
前者は影響がかなり大きいと思います。
後者の影響を受ける人は少ないと思いますが、少なくとも私は受けますし、2枚目以降の初期位置の動作が2.3相当に変わるのならTTXで動作を変えようと思っても出来ない事になります。
「Tera Term 5 で動作おかしくなった」というチケットなので、trunk しか見ていませんでした。すみません。4-stable での動きを確認しました。
新しい接続から開く時は何枚開いても同じ位置に出るのに、セッション複製のみ位置がずれる
この通りでした。
2.3+UTF-8 2.06で常にTERATERM.INIを読み込むようになってからは2枚目以降でもTERATERM.INIのVTPosが使われるようになっています。
2個目以降のインスタンスで共有メモリの VTPos を CW_USEDEFAULT に変更するコードはずっとありましたが、INIを読み込んで上書きされ(新しい接続はここまで)、さらにセッションの複製のときには共有メモリから読み込むので CW_USEDEFAULT になる、となっています。
trunk で変わったのは、共有メモリの VTPos を CW_USEDEFAULT に変更するコードが、そうではなくなってしまったのが始まりと思います。
新しい接続を「TERATERM.INI の VTPos の位置」に戻すのはよいと思いますが、セッションの複製のほうは要望が衝突しています。どう折り合いをつけましょうか?
本人に確認しないと正確なところは判りませんが、tomo3136さんが挙げている「同じ位置に表示して欲しくない理由」は新しい接続時にも当てはまると思います。
なので、tomo3136さんはTERATERM.INIのVTPosにはX,Y共にCW_USEDEFAULTを指定しているのではないかと思います。
それならば、セッションの複製時にも「TERATERM.INIのVTPosの位置」になるようにすればどちらの要望も満たすと思います。
ご検討ありがとうございます。
tomo3136さんはTERATERM.INIのVTPosにはX,Y共にCW_USEDEFAULTを指定しているのではないかと思います。
位置を固定して使いたいシーンは、今まで無かったので VTPos や /X= /Y= は、実使用で使ったことはありません。
このため、設定ファイルは、デフォルトの "VTPos=-2147483648,-2147483648" で使用しています。
ウインドウ固定で使用したい人もいると思いますので、設定したら初回ウインドウは固定位置で良いと思います。
自分は、操作感がほかのプログラムと同じにしたいので、OSお任せのほうが違和感なく使えるかなと思っています。
「新しい接続」でも別ウインドウが開くのですね。気づきませんでした。
自分は、基本的には UART 接続がメインで、接続先ごとにショートカットを作成し、 ボーレートなどの設定が異なる設定ファイルを指定して使っております。
また、 ssh でサーバ接続するときもありますが、複数同時ログインすることはあっても、 サーバやログイン名が変わることはないため「セッションの複製」は使っていました。
「新しい接続」は最初のセッティング以外はあまり使っておらず、 「新しい接続」で別ウインドウを開く必要がありませんでした。
それならば、セッションの複製時にも「TERATERM.INIのVTPosの位置」になるようにすればどちらの要望も満たすと思います。
v5.0 は、Unicode化、デフォルトフォルダ変更、ライブラリのバージョンアップ、バグフィックスがメインと思います。
その他のTopicに上がらないことは、内部コードは異なっても動作は以前と同じかそれに近い状態にあっていただけると v5.0 への移行はスムーズになるかと思います。
セッションの複製時にも「TERATERM.INIのVTPosの位置」になるようにすればどちらの要望も満たす
なるほど、わかりました。
「INIを読み込む」のあとに「複製なら共有メモリからのコピー」の処理があります。ts.VTPos は現在のウィンドウ位置なので、共有メモリ経由で「複製元が読み込んだ TERATERM.INI の VTPos の位置」ではなく「複製元の今のウィンドウの位置」を受け取ることになります。
「セッションの」複製なので INI の位置ではなく、今のウィンドウと同じ位置になってもおかしくない気もします。共有メモリからコピーする前に、読み込んだ INI の VTPos を待避しておいてコピー後に戻せば「TERATERM.INI の VTPos の位置」にすることもできます。どちらが妥当でしょうか。
「複製元の今のウィンドウの位置」
これだとCW_USEDEFAULTを設定しているときだめですね。待避した位置を使うようにします。
2枚目以降では、/F=コマンドラインオプションで指定した設定ファイルのVTPos設定や、/X=, /Y=コマンドラインオプションの指定が無視される
これは解消されたように見えます。どうでしょうか。
2枚目以降に対して、VTウィンドウの初期位置にTTXが介入出来ない
こちらは確認の仕方がわからないのですが、どうでしょうか。
ありがとうございます。OKです。
こちらは確認の仕方がわからないのですが、どうでしょうか。
TTXから介入する場合はReadIniFile/ParseParamで該当の設定を書き換える事になるので、これらの呼び出しの後の設定の状態を尊重してもらえれば大丈夫です。
v4.106までは、セッション複製すると新しいウインドウが少し右下にずれ、重ねて表示されていた。 Teraterm5 では、ずれはなくセッション複製元のウインドウの真上に表示されるようになった。
仕様変更?