Ticket #40824

キャレット有無で動作を変更することはできますか?

Eröffnet am: 2020-10-02 09:48 Letztes Update: 2020-10-03 13:39

Auswertung:
Verantwortlicher:
(Keine)
Status:
Offen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
Keine

Details

 スペースキーをモディファイアキーとして使用しています。

mod Mod0 += !!!Space

 テキストエディタや入力欄などでキャレットが表示されている場合は上記モディファイアキーとして動作し、キャレットが表示されていない場合は上記モディファイアキーの動作を停止させたいと思っていますがそのようなことは可能でしょうか? よろしくお願いします。

Ticket-Verlauf (2/2 Historien)

2020-10-02 09:48 Aktualisiert von: dada-a
  • New Ticket "キャレット有無で動作を変更することはできますか?" created
2020-10-03 13:39 Aktualisiert von: applet
Kommentar

まず、キャレットとフォーカスの関係を調べました。 Windowsは アプリケーションにfocusをあてるときに、WM_SETFOCUSを送り、それを受けてアプリ側で、入力部位があるならキャレットを表示します。 また、focusが外れたときに、WM_KILLFOCUSを送り、アプリ側でキャレットの表示を止めます。

現在、のどかでは、WM_SETFOCUSを見ていて、Windowの調査に使っています。 この機能から判るように、入力部位を持たないアプリでも、フォーカスが当たることは、のどか側で判りますが そのアプリがキャレットを表示するかどうかは、アプリ側に依るわけです。

さて、フォーカスが当たっておらず、キャレットが表示されていないということは、そのウィンドウにキー入力をそもそも送ることが出来ないので 自動的に、所望の状態になっているわけですが、スペースキーとして機能を、どのウィンドウに対して実施したいということになるでしょうか?

逆に言えば、特定アプリだけで、スペースキーのモディファイヤーを有効にしたいということであれば、Golobal設定ではなく Windowを設定してキーバインドをそのアプリのウィンドウだけ機能するよう設定ファイルを変えれば良いだろうと思います。

Dateianhangliste

Keine Anhänge

Bearbeiten

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