Снегопат https://snegopat.ru/forum/ |
|
Хоткеи отрабатывают независимо от наличия модального окна https://snegopat.ru/forum/viewtopic.php?f=1&t=273 |
Страница 1 из 1 |
Автор: | kuntashov [ 04 ноя 2012, 22:45 ] |
Заголовок сообщения: | Хоткеи отрабатывают независимо от наличия модального окна |
Обнаружил следующее не очень приятное поведение: при нажатии горячей клавиши макрос срабатывает не зависимо от того, открыто ли какое-либо модальное окно. Как воспроизвести: 0. Убедиться, что загружен скрипт textEditorExt.js (как наиболее показательный пример). 1. Отрыть любой модуль и установить курсор внутри комментария. 2. Вызвать окно макросов Снегопата (Ctrl+M) 3. Попытаться вызвать какой-либо макрос, установив на него курсор и нажав Enter. Что произойдет: отработает макрос textEditorExt::macrosOnPressEnterInComment (для него назначен хоткей - Enter). Ожидалось: будет выполнен макрос, на котором был установлен курсор. Если попробовать аналогичным образом выполнить любой другой макрос - он вызовется, независимо от наличия модального окна. Получается, что события в первую очередь перехватываются макросами. В модальное окно событие нажатия хоткея попадает уже после. При этом также snegopat.activeTextWindow() возвращает текстовое окно под модальным, что тоже не желательно. Это задуманное поведение или ошибка? |
Автор: | orefkov [ 05 ноя 2012, 07:56 ] |
Заголовок сообщения: | Re: Хоткеи отрабатывают независимо от наличия модального окн |
Так задумано. Снегопат отлавливает хоткеи и вызывает макросы независимо от текущего модального режима. Макрос может проверить текущий модальный режим: Код: if(windows.modalMode != msNone) return false Например, macrosПерейтиКОпределению() в snegopat.js работает так: Код: if(snegopat.activeTextWindow() && windows.modalMode == msNone)
|
Автор: | Magister [ 05 ноя 2012, 11:12 ] |
Заголовок сообщения: | Re: Хоткеи отрабатывают независимо от наличия модального окн |
Я так понимаю, отлов идет через хуки Windows? SetWindowsHookEx & co? К чему это я спрашиваю. Хоткеи типа Ctrl-1, который в SynEdit по-умолчанию - переход к закладке №1 - не отрабатывает вообще. В то время, как Ctrl-Shift-1 (установка закладки №1) - отрабатывает отлично. |
Автор: | kuntashov [ 05 ноя 2012, 12:32 ] |
Заголовок сообщения: | Re: Хоткеи отрабатывают независимо от наличия модального окн |
orefkov писал(а): Так задумано. Снегопат отлавливает хоткеи и вызывает макросы независимо от текущего модального режима. Макрос может проверить текущий модальный режим: Код: if(windows.modalMode != msNone) return false Например, macrosПерейтиКОпределению() в snegopat.js работает так: Код: if(snegopat.activeTextWindow() && windows.modalMode == msNone) Ок, спасибо. В большей части случаев не существенно, но вот как минимум в textEditorExt.js надо сделать правки. |
Автор: | kuntashov [ 05 ноя 2012, 13:16 ] |
Заголовок сообщения: | Re: Хоткеи отрабатывают независимо от наличия модального окн |
Продолжаю изыскания: Если открыть текстовый документ, затем вызывать окно открытия файла (Ctrl+O), а потом вызывать какой-либо макрос, то в это макросе условие windows.modalMode != msNone ложно, windows.modalMode == 0. С окном - списком макросов все ок. |
Автор: | artbear [ 21 ноя 2012, 10:27 ] |
Заголовок сообщения: | Re: Хоткеи отрабатывают независимо от наличия модального окн |
kuntashov писал(а): orefkov писал(а): Так задумано. Снегопат отлавливает хоткеи и вызывает макросы независимо от текущего модального режима. Макрос может проверить текущий модальный режим: Код: if(windows.modalMode != msNone) return false Например, macrosПерейтиКОпределению() в snegopat.js работает так: Код: if(snegopat.activeTextWindow() && windows.modalMode == msNone) Ок, спасибо. В большей части случаев не существенно, но вот как минимум в textEditorExt.js надо сделать правки. Ага, нужно эту инфу куда-нибудь в Вики закинуть! Фактически многие скрипты нужно проверить. (kuntashov) Саш, ты textEditorExt.js поправишь, верно? |
Автор: | sosnae [ 21 ноя 2012, 10:49 ] |
Заголовок сообщения: | Re: Хоткеи отрабатывают независимо от наличия модального окн |
artbear писал(а): (kuntashov) Саш, ты textEditorExt.js поправишь, верно? Уже исправил, просто потерялось во множестве коммитов
|
Автор: | artbear [ 21 ноя 2012, 11:16 ] |
Заголовок сообщения: | Re: Хоткеи отрабатывают независимо от наличия модального окн |
А для конструктора запросов, точнее, для окна редактирования текста запроса или редактирования выражения запроса, как все обстоит? ведь эти текстовые окна открываются в модальном режиме. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |