キャレット有無で動作を変更することはできますか?
まず、キャレットとフォーカスの関係を調べました。 Windowsは アプリケーションにfocusをあてるときに、WM_SETFOCUSを送り、それを受けてアプリ側で、入力部位があるならキャレットを表示します。 また、focusが外れたときに、WM_KILLFOCUSを送り、アプリ側でキャレットの表示を止めます。
現在、のどかでは、WM_SETFOCUSを見ていて、Windowの調査に使っています。 この機能から判るように、入力部位を持たないアプリでも、フォーカスが当たることは、のどか側で判りますが そのアプリがキャレットを表示するかどうかは、アプリ側に依るわけです。
さて、フォーカスが当たっておらず、キャレットが表示されていないということは、そのウィンドウにキー入力をそもそも送ることが出来ないので 自動的に、所望の状態になっているわけですが、スペースキーとして機能を、どのウィンドウに対して実施したいということになるでしょうか?
逆に言えば、特定アプリだけで、スペースキーのモディファイヤーを有効にしたいということであれば、Golobal設定ではなく Windowを設定してキーバインドをそのアプリのウィンドウだけ機能するよう設定ファイルを変えれば良いだろうと思います。
スペースキーをモディファイアキーとして使用しています。
テキストエディタや入力欄などでキャレットが表示されている場合は上記モディファイアキーとして動作し、キャレットが表示されていない場合は上記モディファイアキーの動作を停止させたいと思っていますがそのようなことは可能でしょうか? よろしくお願いします。