электрон: управление диапазоном перетаскивания, удерживая мета-ключ - PullRequest
0 голосов
/ 29 февраля 2020

С Electron мне интересно, как захватить событие мета-ключа при перетаскивании большого пальца элемента управления диапазоном, или увеличении / уменьшении элемента управления числом, перетаскиванием с нажатой клавишей Shift или перетаскиванием по опции на ползунке, нажатием Shift или option-click на вращениях числа.

Существует API globalShortcut, но это более широкий API, даже если окно не в фокусе. И что еще хуже, он не регистрирует ни одного события мета-ключа. Поддерживаемые события должны быть meta+regular_key. Мне нужно обнаруживать события по одному мета-ключу.

Что еще более важно, используя API, он в основном требует, чтобы глобальные переменные в качестве состояний передавались всем частям кода, которым требуются эти состояния, что уродливо.

Есть ли такой способ, как с другой библиотекой виджетов, где мета-ключи являются частью сигнатуры API?

1 Ответ

0 голосов
/ 29 февраля 2020

Я закончил с этим решением глобальной переменной на данный момент. Не уверен, что это лучший способ.

var gShiftKeyHeld = false;
// CAUTION:
// - keypress not fired in Chrome for meta keys.
document.addEventListener('keydown', (evt) => {
    gShiftKeyHeld = evt.shiftKey;
});
document.addEventListener('keyup', (evt) => {
    gShiftKeyHeld = evt.shiftKey;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...