Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ターミナルのカーソルの点滅が止まったら復元する #60

Closed

Conversation

mikecat
Copy link
Contributor

@mikecat mikecat commented Aug 12, 2022

fix #53

この修正を適用する前は、ウィンドウを使うアプリケーション (例えば winhello を長時間 (例えば5秒くらい) 開いておくと、
アプリケーションを終了してもターミナルのカーソルが点滅しなくなってしまいます。

これは、アプリケーションにカーソルを点滅させるためのタイムアウトメッセージが吸われてしまい、
ターミナルの処理にメッセージが来なくなってしまうためであると考えられます。

そこで、

  • 来ているメッセージが空である
  • 現在時刻がメッセージが来るはずの時刻より後である

という条件を満たした時、タイマーを再設定し、カーソルが点滅するようにします。

さらに、アプリケーション側で長時間のタイマーを設定し、タイムアウト前に終了した場合、
この機能により再設定したタイマーのメッセージに加え、アプリケーションが設定したタイマーのメッセージも来てしまい、
タイマーが二重になってしまう可能性が考えられます。

この対策のため、ターミナルの処理で設定したタイムアウトではないタイムアウトに関するメッセージは無視するようにします。

@uchan-nos
Copy link
Owner

@mikecat
タイマーの修正はコンパクトで素晴らしいので是非取り込みたいのですが、
タイマーの修正とは無関係のはずの comproc コマンドの挙動が変更されてしまっているため、取り込めません。
comproc に関する変更は元に戻して欲しいです。

@mikecat
Copy link
Contributor Author

mikecat commented Aug 26, 2022

この変更は身に覚えがないです。操作ミスかもしれません。

一旦クローズします。
#57 の解決後 (ウィンドウを作らない場合でも layer_id を初期化してほしいので)、
標準入力の読み込み中のカーソルも点滅するようにしてプルリク出し直したいと思います。

@mikecat mikecat closed this Aug 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ターミナルのカーソルの点滅が止まったら復元する
2 participants