Я создаю приложение, которое эмулирует Multi-touch трекпад MacBook. Как вы, возможно, знаете, на трекпаде MacBookКак проверить, активировано ли Exposé или нет?
- Если вы проведите пальцем по 4 пальцам вверх, он запускает Show Desktop.
- Если вы проведите пальцем по 4 пальцам вниз, на экране появится Exposé.
Однако, если рабочий стол Show Desktop активирован, и вы проведите пальцем по 4 пальцам вниз, он вернется в нормальный режим. То же самое происходит с Exposé: если Exposé активируется, и вы проведите пальцем по 4 пальца вверх, он также вернется в нормальный режим.
Вот проблема: я использую сочетание клавиш F3, чтобы показать Exposé и F11, чтобы показать Show Desktop. Проблема в том, что когда рабочий стол Show Desktop активируется, если я нажму F3, он перейдет прямо к Exposé. И когда Exposé активируется, если я нажму F11, он пойдет прямо на Show Desktop. Но я хочу, чтобы вести себя как Trackpad, который я предполагаю, его код может выглядеть следующим образом
- FourFingersDidSwipeUp {
if (isExposeBeingActivated() || isShowDesktopBeingActivated()) {
pressKey("Esc");
} else {
pressKey("F11");
}
}
Но я не знаю, как реализовать «isExposeBeingActivated()» и «isShowDesktopBeingActivated()» методы. Я попытался создать окно и проверить, изменился ли его размер (при условии, что при активации Expose его размер должен быть меньше), но система всегда возвращает тот же размер. Я попытался контролировать фоновые процессы во время Expose, но ничего не произошло. Есть ли какие-либо предложения по этому поводу?
(я извиняюсь, если мой английский звучит странно.)