Tíquete #44517

カスタム通知アイコンのセット

: 2022-05-05 23:41 Última Atualização: 2022-07-15 23:50

Relator:
Dono:
(Nenhum)
Tipo:
Estado:
Fechado
Componente:
(Nenhum)
Prioridade:
5 - Medium
Gravidade:
5 - Medium
Resolução:
Fixed
Arquivo:
2
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

表から見える動作

  • 通知バルーンは Me 以上・2000 以上で利用できる r6692
  • 4bit アイコンが表示されている
  • SSH のエージェント転送で VT アイコンが表示されている。Windows 2000 のときのみ SSH アイコンが表示されている r6691
    • CVTWindow::VTWindow() で Windows 2000 以外の場合にも SetCustomNotifyIcon() を呼んでいて、CustomIcon に VT アイコンがセットされているため

4-stable, trunk で同じ動作

実装を調査

  • CVTWindow::CVTWindow()
    • ts.VTIcon
    • 16x16 で読み込み
    • LR_VGACOLOR|LR_SHARED
  • notify_established_secure_connection()
    • IsWindows2000 のときのみ、pvar->settings.IconID
    • 0x0 で読み込み
    • LR_VGACOLOR | LR_SHARED
  • CreateNotifyIcon()
    • CustomIcon があればそれを、なければ HWin の ICON_SMALL を使用する
    • SetCustomNotifyIcon(), SetCustomNotifyIcon() は、通知バルーンに対応していて 32bit アイコンに対応していない Windows 2000 専用の関数となっている
      • カスタム通知アイコンには「Windows 2000 のときに 4bit に落とす」以外の可能性もあるが、今のところこの用途でしか使われていない

本当はこうあって欲しい動作はこう?

  • 32bit アイコンが表示される
    • Windows 2000 だけは 4bit アイコンを使う ... Windows2000 の通知アイコンは 32bit 非対応なので、4bit アイコンを使う必要がある
    • → 4-stable r9909 で 32bit アイコンの読み込みに対応
    • → 4-stable r9920 で、カスタム通知アイコンをセットするのは Windows2000 のときだけに戻した
    • → adjust_icon r9921 で、カスタム通知アイコンをセットするのは Windows2000 のときだけになった
  • SSH 接続のあいだは SSH アイコンを使う
    • → 4-stable r9909 で SSH アイコンのセットに対応
    • → 4-stable r9920 で、カスタム通知アイコンをセットするのは Windows2000 のときだけに戻した
    • → adjust_icon r9921 で、カスタム通知アイコンをセットするのは Windows2000 のときだけになった
  • 高解像度アイコンをセットしたら表示される? → #43907
  • SSH の通知アイコンは、SSH 接続中ずっとではなく SSH から通知を送る瞬間だけセットしたほうがよい?
    • SSH 接続中に Tera Term が通知を出したときに SSH のアイコンが出るのはおかしい気もするが、VT ウィンドウのアイコンになっているのでおかしくはない気もする

Ticket History (3/12 Histories)

2022-05-05 23:41 Updated by: nmaya
  • New Ticket "通知アイコンのセット" created
2022-05-07 11:54 Updated by: nmaya
Comentário
  • 通知領域アイコンを拡大率変化に対応させるとしたら、CVTWindow::OnDpiChanged() でも SetCustomNotifyIcon() を呼ぶ?
  • 変更前のアイコンハンドラを OldNotifyIcon に保存しておいて、切断時に戻しているが、本体側で「今の解像度」のアイコンを読み込み直す必要がある?
(Edited, 2022-05-07 11:57 Updated by: nmaya)
2022-05-07 16:00 Updated by: nmaya
Comentário

4-stable では r9909 で対応済み。

高解像度対応できそうなら 4-stable → adjust_icon → trunk と、しないなら 4-stable → trunk とマージしていくとよい。

2022-05-13 00:50 Updated by: nmaya
  • Details Updated
2022-05-13 12:47 Updated by: nmaya
  • Details Updated
  • Summary Updated
2022-05-17 19:21 Updated by: nmaya
Comentário

ここまでの進展

  • SSH のエージェント転送で VT アイコンが表示されている
    • Windows 2000 以外のときにも 4bit の VT アイコンが CustomIcon に設定されていたため。4-stable, adjust_icon で修正済み
  • 4bit アイコンが表示されている
    • 上記の修正により、4-stable, adjust_icon で修正済み

cf. ttssh2-dev 397

cf. r9927

  • 高解像度対応(起動中の解像度変更対応)のため、SetCustomNotifyIconID() を作成
    • adjust_icon のみ

TODO

4-stable と trunk で、アイコンの読み込みかた(TTLoadIcon() など)や通知アイコンの持ち方がだいぶ異なっている。

  • 高解像度対応の 4-stable へのマージ
    • だいぶ替わっているので大変そう
  • 通知アイコンが再作成されない問題の対応の 4-stable へのマージ
    • これだけなら可能か?
2022-06-11 13:28 Updated by: nmaya
Comentário

ここまでの進展

  • 通知アイコンが再作成されない問題の対応の 4-stable へのマージ

TODO

  • TTSSH から通知アイコンをセットするタイミング ttssh2-dev 442
2022-06-21 08:59 Updated by: nmaya
Comentário

ここまでの進展

  • SSH 接続中に Tera Term が出す通知が Tera Term のアイコンになるようにする
    • SSH 側のアイコンがセットされているのは通知するときだけに変更する
    • r9998で対応

TODO

  • 変更履歴
    • 4-stable SSH接続中はSSHアイコンが使用される
    • trunk 上記のとおり
2022-07-15 23:50 Updated by: nmaya
Comentário

ここまでの進展

  • 変更履歴
    • 4-stable SSH接続中はSSHアイコンが使用される
    • trunk 上記のとおり
2022-07-15 23:50 Updated by: nmaya
  • Estado Update from Aberto to Fechado
  • Resolução Update from Nenhum to Fixed

Attachment File List

Editar

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