ESC key now closes node details properly
A redundant keyboard event handler was blocking the ESC key from closing node details. It was removed.
The ESC key wasn't reliably closing node details in the editor. The culprit was a redundant event handler on NodeSettings that was stopping key propagation unnecessarily.
This handler existed to prevent global shortcuts from firing when typing in input fields, but the codebase already handles that protection through the useKeybindings composable, which checks shouldIgnoreCanvasShortcut() before processing any shortcut.
Removing the redundant @keydown.stop restores proper ESC behavior while maintaining all existing shortcut protection. The fix is a single line removed in the editor UI package.
View Original GitHub Description
Summary
Removing the @keydown.stop on NodeSettings
This was intended to prevent global shortcuts from firing when typing in input fields. However, it's redundant because useKeybindings already protects inputs The useKeybindings composable (used for most shortcuts like Cmd+Enter, Delete, etc.) checks shouldIgnoreCanvasShortcut() before handling any shortcut:
// canvas.utils.ts export function shouldIgnoreCanvasShortcut(el: Element): boolean { return ( ['INPUT', 'TEXTAREA'].includes(el.tagName) || el.closest('[contenteditable]') !== null || el.closest('.ignore-key-press-canvas') !== null ); } This automatically ignores shortcuts when focus is on INPUT, TEXTAREA, or contenteditable elements.
<!-- Describe what the PR does and how to test. Photos and videos are recommended. -->Related Linear tickets, Github issues, and Community forum posts
https://linear.app/n8n/issue/ADO-4543/esc-button-does-not-close-ndv-for-some-triggers
<!-- Include links to **Linear ticket** or Github issue or Community forum post. Important in order to close *automatically* and provide context to reviewers. https://linear.app/n8n/issue/ --> <!-- Use "closes #<issue-number>", "fixes #<issue-number>", or "resolves #<issue-number>" to automatically close issues when the PR is merged. -->Review / Merge checklist
- PR title and summary are descriptive. (conventions) <!-- **Remember, the title automatically goes into the changelog. Use `(no-changelog)` otherwise.** -->
- Docs updated or follow-up ticket created.
- Tests included. <!-- A bug is not considered fixed, unless a test is added to prevent it from happening again. A feature is not complete without tests. -->
- PR Labeled with
release/backport(if the PR is an urgent fix that needs to be backported)