Merged
Size
XS
Change Breakdown
Bug Fix70%
Refactor30%
#23464fix(editor): Removing redundant stop of key propogation

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)
© 2026 · via Gitpulse