@ledsun blog

Hのキーがhellで、Sのキーがslaveだ、と彼は思った。そしてYのキーがyouだ。

WindowsでDeepLを常駐させてCtrl + Cを二回押すとCtrlを押してないことになる

Google Chormeでためしました。 keyupイベントのイベントハンドラーでctrlKeyプロパティの値をみて、Ctrlキーが押されているか判定します。

Ctrlキーを押したままCキーを3回上下すると次のようにイベントが発火します。

f:id:ledsun:20211222085534p:plain
Ctrlキーを押したままCキーを3回押した時のイベント

2回目のあとになぜかInsertキーが発火します。 3回目ではなぜかCtrlキーが押されていないことになります。 (copy event firedは別のログです。無視してください。)

意味不明すぎて、最初びっくりしました。 次のようなことを原因ではないかと考えました。

  • キーマップを変更している
  • USBハブを経由してキーボードを接続している
  • 物理キーボードの故障

よく考えると「Ctrlキーを押したままCキーを2回上下する」ってよく使っている動作です。 DeepLを起動するために。

DeepLを終了してみたらこの現象は起きなくなりました。 Insertキーが発火するのはよくわかりませんが、DeepLが「Ctrlキーを押したままCキーを2回上下する」を監視して何かしているのは、そりゃそうですよね。 考えてみると「Ctrlキーを押したままCキーを2回上下する」ってあまりやらないですよね。 念のためにやるクセがあるひとはいますが「Ctrl + V」みたいに、意図があって繰り返すことは無いと思います。 なるほど「Ctrlキーを押したままCキーを2回上下する」って、意外とよく考えられたキーバインドなんだなーと思いました。