salexdv / bsl_console

Консоль кода для 1С 8.3 (Управляемые и обычные формы)
MIT License
293 stars 55 forks source link

Редактор блокирует сочетание клавиш CTRL+M #351

Closed tormozit closed 2 months ago

tormozit commented 2 months ago

Связанная заявка ИР https://github.com/tormozit/RDT1C/issues/614 Есть кнопка с сочетанием CTRL+M на форме с редактором. Когда редактор активен, нажатие CTRL+M не вызывает обработчик кнопки, а когда он не активен - вызывает.

tormozit commented 2 months ago

Нашел похожую заявку https://github.com/salexdv/bsl_console/issues/175 Там проблема была с CTRL+D. Решили ее двумя операциями:

РедакторHTML.setOption("disableContextQueryConstructor", Истина);
РедакторHTML.disableKeyBinding(2082); // CTRL(2048)+D(34) - CTRL+D

Как мне узнать аналогичный нужный код для произвольного сочетания клавиш?

tormozit commented 2 months ago

Подозреваю что конфликтная команда редактора имеет имя editor.action.toggleTabFocusMode https://github.com/microsoft/monaco-editor/wiki/Monaco-Editor-Accessibility-Guide/b905efac6b5ab30b23350dd664c2026962066514#tab-trapping

tormozit commented 2 months ago

Код клавиши M нашел поиском по исходникам "KEY_M" [e.KEY_M=43]="KEY_M" Добавил в код инициации редактора РедакторHTML.disableKeyBinding(2091); // CTRL(2048)+D(43) - CTRL+M Теперь при нажатии сочетания клавиш CTRL+M вызывается событие EVENT_KEY_BINDING_2091 . Но обработчик кнопки в форме не вызывается.

tormozit commented 2 months ago

Удалось отвязать сочетание клавиш так editor._standaloneKeybindingService.addDynamicKeybinding("-editor.action.toggleTabFocusMode") без вызова disableKeyBinding