MacBook のマルチタッチ トラックパッドをエミュレートするアプリケーションを作成しています。ご存知かもしれませんが、MacBook のトラックパッドには
- 4 本の指で上にスワイプすると、Show Desktop がトリガーされます。
- 4 本の指で下にスワイプすると、Exposé が表示されます。
ただし、Show Desktop がアクティブ化されているときに 4 本の指を下にスワイプすると、通常モードに戻ります。Exposé についても同様です。Exposé がアクティブな状態で 4 本の指を上にスワイプすると、通常モードに戻ります。
ここに問題があります。キーボード ショートカット F3 を使用して Exposé を表示し、F11 を使用して Show Desktop を表示します。問題は、Show Desktop がアクティブ化されているときに F3 を押すと、Exposé に直接移動することです。また、Exposé がアクティブ化されているときに F11 を押すと、Show Desktop に直接移動します。しかし、トラックパッドのように動作するようにしたいのですが、そのコードは次のようになると思います
- FourFingersDidSwipeUp {
if (isExposeBeingActivated() || isShowDesktopBeingActivated()) {
pressKey("Esc");
} else {
pressKey("F11");
}
}
しかし、「isExposeBeingActivated()」および「isShowDesktopBeingActivated()」メソッドを実装する方法がわかりません。ウィンドウを作成して、そのサイズが変更されたかどうかを確認しようとしましたが (Expose がアクティブ化されている場合、そのサイズは小さくなるはずです)、システムは常に同じサイズを返します。Expose 中にバックグラウンド プロセスを監視しようとしましたが、何も起こりませんでした。これに関する提案はありますか?
(私の英語が変に聞こえたらごめんなさい。)