mirror of
https://github.com/node-red/node-red.git
synced 2025-12-27 15:34:26 +01:00
Merge pull request #5202 from node-red/5198-monaco-esc-handling
Better Monaco `esc` key bubbling
This commit is contained in:
@@ -1426,6 +1426,15 @@ RED.editor.codeEditor.monaco = (function() {
|
||||
ed.gotoLine(row, col);
|
||||
}
|
||||
ed.type = type;
|
||||
|
||||
ed.onKeyDown((event) => {
|
||||
if (event.keyCode === monaco.KeyCode.Escape) {
|
||||
if (monacoWidgetsAreOpen(ed)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return ed;
|
||||
}
|
||||
|
||||
@@ -1435,6 +1444,16 @@ RED.editor.codeEditor.monaco = (function() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function monacoWidgetsAreOpen(editor) {
|
||||
/** @type {HTMLElement} */
|
||||
const editorDomNode = editor.getDomNode()
|
||||
const suggestVisible = !!editorDomNode.querySelector('.monaco-editor .suggest-widget.visible');
|
||||
const parameterHintsVisible = !!editorDomNode.querySelector('.monaco-editor .parameter-hints-widget.visible');
|
||||
const findWidgetVisible = !!editorDomNode.querySelector('.monaco-editor .find-widget.visible');
|
||||
const renameInputVisible = !!editorDomNode.querySelector('.monaco-editor .rename-box');
|
||||
return suggestVisible || parameterHintsVisible || findWidgetVisible || renameInputVisible
|
||||
}
|
||||
|
||||
return {
|
||||
/**
|
||||
* Editor type
|
||||
|
||||
Reference in New Issue
Block a user