Проблема непростая. ИР адаптер вешает на клавишу Esc команду НажатиеEscape. Она нужна для закрытия собственного окна подсказки по вызову метода. Если же такого окна нет, то она пробрасывает нажатие Esc дальше. В окнах модулей это работает без побочных эффектов.
Но в описанной тут ситуации (в окне конструктора схемы компоновки при открытом окне подсказки Т9) нажатие Esc обрабатывается так
Сначала Турбоконф закрывает окно подсказки Т9
Турбоконф отправляет скрипту вызов назначенной на Esc команды НажатиеEscape
Команда скрипта, видя что ей тут делать нечего, пробрасывает нажатие дальше окну конфигуратора.
Окно конфигуратора шлет нажатие в текущее дочернее окно - "Конструктор схемы компоновки" и оно закрывается
Предлагаю не делать п.2, если Турбоконф сам обработал нажатие клавиши, ну или хотя бы только для этой особой клавиши Esc. Еще можно добавить передачу скрипту признака, что клавиша была обработана самим Турбоконфом.
Еще можно дать скрипту возможность включать/выключать такие служебные команды как НажатиеEscape, т.к. нужна она моему скрипту только при открытом моем окне подсказки по вызову метода.
#1, 30 января 2025 00:57
Перехватывать Escape плохая затея, это очень серьезная клавиша, может повлечь кучу побочек.
Если нужно закрыть окно подсказки T9, лучше оформить заявку на метод в API.
#2, ред. 30 января 2025 07:20
(1) bolsun, напомню тебе что есть задача "подсказка по вызову метода" https://turboconf.ru/Tasks/8882
Там у тебя кругом отказы с добавлением "плохая идея". Однако потребность очень сильная. Поэтому я потратил на поиски хоть какого то решения много времени - уже 3 разных подхода находил. Текущий работает достаточно надежно. Но нужен способ закрывать открытое "поверх всех окон" окно такой подсказки. Поэтому я прошу сделать нормальный проброс нажатия Esc. Я конечно могу задействовать другое сочетание клавиш, но это будет очень неудобно осваивать, т.к. закрывать окна люди привыкли клавишей Esc.
#3, 30 января 2025 14:03
Я не понимаю проблему, если ТК перехватил нажатие Escape для закрытия окна T9, то нажатие не будет отправлено в скрипт.
Если ты перехватил Escape и не пробросил дальше, то тоже не будет отправлено в окно конфигуратора.
Если перехватил и пробросил дальше то будет отправлено в окно конфигуратора.
#4, 30 января 2025 14:14
Тогда ошибка в Турбоконфе. Он работает не так - в скрипт он отправляет Esc после закрытия списка Т9. Я описал как он фактически работает в исходном сообщении.
#5, 30 января 2025 15:21
Исправил перехват, Escape больше не отправляется в скрипты при закрытии подсказки
6.3.9161.30408
https://disk.yandex.ru/d/XRPUNWQtrbwBUw
#6, ред. 30 января 2025 18:57
(5) bolsun, проверил. Исправлено.
#7, 31 января 2025 19:06
tormozit изменил статус на Закрыто