js/arrow_key_canvas_navigation.js:
- Replace the hardcoded CANVAS_BLOCKING_UI_WINDOW_CLASSES selector
string with isDialogOpen(), which detects blocking UI more robustly:
ARIA dialogs/modals via document.activeElement, PrimeVue overlay
masks, native <dialog> elements, and a generic fallback that flags
any full-viewport, high-z-index fixed-position div. This removes the
need to hardcode every third-party node's CSS class.
- Add a "Manual Overlay CSS Selectors (to Disable Panning)" setting so
users can add selectors for overlays the automatic detection misses,
without editing the source file or restarting ComfyUI.
- Add a "Pan Speed Multiplier (Shift + Arrow Key)" setting (default 3x)
for faster panning while holding Shift.
- Switch from the deprecated app.ui.settings API to
app.extensionManager.setting.
- Replace the event.composedPath()[0] focus check with
document.activeElement, and also treat contentEditable elements and
litegraph's inline "property_value" span as focused inputs.
- Extract isInputFocused()/hasImageCarousel() into named helper
functions and reorder the keydown handler into early-exit "fast
path" checks for readability.
README.md:
- Update docs to match the above: mention the Shift multiplier, and
replace the outdated instructions to edit the
CANVAS_BLOCKING_UI_WINDOW_CLASSES constant with instructions to use
the new Manual Overlay CSS Selectors setting instead.
Also normalized 6 files (.github/workflows/publish.yml, .gitignore,
LICENSE, README.md, __init__.py, pyproject.toml) back to LF line
endings — they had been accidentally converted to CRLF with no actual
content changes, which was producing a noisy ~800-line diff.