Ticket #43907

アプリからセットするアイコンサイズを拡大率にあわせて変更する

Open Date: 2022-02-19 01:34 Last Update: 2022-07-15 23:49

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
6
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

cf. ttssh2-dev 243 ttssh2-dev 254

adjust_icon ブランチで作業中

Ticket History (3/23 Histories)

2022-02-19 01:34 Updated by: nmaya
  • New Ticket "アプリからセットするアイコンサイズを拡大率にあわせて変更する" created
2022-05-07 11:46 Updated by: nmaya
  • Details Updated
2022-05-07 11:57 Updated by: nmaya
  • Details Updated
2022-05-07 11:58 Updated by: nmaya
  • Details Updated
2022-05-07 16:00 Updated by: nmaya
  • Details Updated
2022-05-10 12:59 Updated by: nmaya
  • Details Updated
2022-05-13 12:47 Updated by: nmaya
  • Details Updated
Comment

cf. ttssh2-dev 386, ttssh2-dev 387

  • VTウィンドウのアイコン
    • TTSSH 側も拡大率にあわせて読み込む必要がある
      • ttxssh.c notify_established_secure_connection()
    • SSH 切断時にアイコンを戻す処理
      • ttxssh.c notify_established_secure_connection() で、SSH 接続時に元のアイコンを pvar->OldLargeIcon, pvar->OldSmallIcon に取っておいて切断時に戻している
      • SSH 接続中に解像度が変わらない保証がないので、アイコンを保持しておくことはできない
      • 本体側で「今の解像度」の「VTウィンドウ」のアイコンを読み込み直す必要がある
    • SSH 接続中に解像度が変わったとき
      • CVTWindow::OnDpiChanged() でアイコンをセットせず、TTSSH 側で「今の解像度」の「SSHアイコン」を読み込む必要がある
  • 通知アイコン
    • cf. https://osdn.net/projects/ttssh2/ticket/44517#comment:1412:44517:1651892097
    • 拡大率にあわせたサイズを読み込んでいないので対応する必要がある
    • 解像度が変わったとき
      • なにもしていないので対応する必要がある
    • TTSSH 側も拡大率にあわせて読み込む必要がある
    • SSH 切断時にアイコンを戻す処理
      • 注意点はVT ウィンドウと同様。通知アイコン設定時に OldNotifyIcon に元のアイコンを取っておいているので、これをやめる必要がある
    • SSH 接続中に解像度が変わったとき
      • 注意点はVT ウィンドウと同様。
2022-05-13 12:59 Updated by: nmaya
Comment

cf. ttssh-dev 393, ttssh-dev 394, ttssh-dev 395, r9914, r9919, r9921(4-stable r9920

読み込むべきアイコンの元になる情報を Tera Term 本体側に持つようになったため、解像度をプラグインに通知する必要はなくなったもよう

VT ウィンドウ

VT アイコン

  • 拡大率100%でないときにプログラムを起動 ... OK
  • プログラム実行中に拡大率を変更 ... OK

SSH アイコン

  • 拡大率100%でないときに起動して SSH 接続 ... OK
  • SSH 接続中に拡大率を変更 ... OK
  • SSH 接続断で VT アイコンに戻る ... OK

通知アイコン

  • 拡大率100%でないときにプログラムを起動し、通知を発動 ... OK
  • 通知を起こし、Windows の拡大率を変更し、通知を起こす ... NG: 最初のサイズの通知アイコンが使用される
    • 通知アイコンがすでに読み込まれている場合は、新たに読み直さないため cf. CreateNotifyIcon()

プラグインからアイコンをセットする方法

  • r9914 の実装: pvar->ts の関数ポインタを呼ぶ
  • エクスポート関数を呼ぶ
  • common_static.lib: 本体側の VTWin に触れないといけないので、この方法ではできない
    • ts を渡せば ts->HWin で触れる?
(Edited, 2022-05-17 19:25 Updated by: nmaya)
2022-05-17 19:26 Updated by: nmaya
Comment

進展

cf. ttssh2-dev 395, ttssh2-dev 396, ttssh2-dev 397, ttssh2-dev 400

cf. r9927

  • 通知アイコンの高解像度対応(起動中の解像度変更対応)
    • 通知を起こし、Windows の拡大率を変更し、通知を起こす ... 最初のサイズの通知アイコンが使用される
    • r9927 で修正済み ... OK

TODO

  • VT ウィンドウ・カスタム通知アイコン以外のアイコンを WM_SETICON しているところで高解像度対応
  • SetVTIcon() をエクスポート関数に変更する
  • trunk にマージする
2022-05-27 18:07 Updated by: nmaya
Comment

進展

TODO

2022-05-27 18:07 Updated by: nmaya
  • File TTSetIcon.png (File ID: 9350) is attached
2022-05-27 18:07 Updated by: nmaya
  • File TTSetIcon.png (File ID: 9350) is deleted
2022-06-11 13:28 Updated by: nmaya
Comment

進展

  • WM_SETICON に変更
  • IsIconic()
  • 関数へのポインタを入れるのはいったんやめてみようと思います。

TODO

2022-06-15 01:09 Updated by: nmaya
  • File keycode.gif (File ID: 9500) is attached
2022-06-15 01:09 Updated by: nmaya
  • File keycode.gif (File ID: 9500) is deleted
2022-06-21 08:58 Updated by: nmaya
Comment

ここまでの進展

  • TTSSH から通知アイコンをセットするタイミング
  • 終了時のアイコン削除

TODO

  • エクスポート関数
    • ttpcmn.def ttssh2-dev 452
    • 破壊的変更であることを usage/migrate_to_5.html に記述
  • trunk にマージする
2022-07-15 23:49 Updated by: nmaya
  • Status Update from Open to Closed
  • Resolution Update from None to Fixed
Comment

ここまでの進展

  • エクスポート関数
  • trunk にマージする

Attachment File List

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login