Scroll Over Textarea
Stop trackpads hijacking your prompts
Here's the thing nobody tells you about the "Scroll Over Textarea" node: it does nothing. Zero inputs, zero outputs, zero math. And that's the point.
The feature is a frontend fix, not a graph operation. If you've ever used ComfyUI on a Mac trackpad, you know the pain it solves: your cursor drifts over a prompt box while you're two-finger scrolling, and instead of just scrolling you trigger a horizontal swipe - which the browser reads as forward/back navigation and yanks you off your whole workflow. The extension intercepts that. When enabled, scrolling over any textarea (your prompt, negative prompt, or any comfy-multiline-input box) gets forwarded to the canvas instead, so it pans and zooms the graph the way scrolling anywhere else does. The accidental back-button jump just stops happening.
How it actually works
The Python side of this pack is a skeleton. The ScrollOverTextareaDummyNode in nodes.py is literally a stub: empty INPUT_TYPES, empty return, a test() method that returns nothing. Its whole job is to give the pack something to register in the node graph so ComfyUI knows the extension exists.
All the real work lives in web/js/comfyui_scroll_over_textarea.js. On load it grabs every textarea.comfy-multiline-input on the page and attaches a mousewheel listener that calls app.canvas.processMouseWheel(event) and preventDefault(). The wheel event never reaches the textarea's own scroll handler, so the browser never gets the chance to turn it into history navigation. There's also a settings toggle - "Prevent Scrolling Within Textareas", on by default - under Settings → Extension so you can flip the behavior back if you genuinely want to scroll inside a long prompt with your cursor over it.
Because the effect is global, the dummy node doesn't need to be in your workflow for the fix to apply. Drop it on the canvas if you want, or don't. It changes nothing either way.
Install
Installation is the easy part because this pack has no heavy lifting at all: no requirements.txt, an empty dependencies = [] in pyproject.toml, and no model files to download. It's pure browser JS plus a stub.
The README (which is a stock cookiecutter scaffold, so the "Features" section is just placeholder text) gives the two standard paths:
- ComfyUI Manager: search for "Scroll Over Textarea" or the pack name
joreyaesh/comfyui_scroll_over_textareaand install from the catalog. - Manual: clone into your custom nodes folder and restart ComfyUI:
cd ComfyUI/custom_nodes
git clone https://github.com/joreyaesh/comfyui_scroll_over_textarea
Then restart ComfyUI and hard-refresh the browser tab (Cmd+Shift+R) so the new JS gets loaded - the classic step people skip.
Where people get burned
- It only works in ComfyUI's default frontend. The extension patches
app.canvasfrom the standard web UI, so alternative frontends that drive the Comfy backend don't get the fix. It's a browser-UI tweak, not an API feature. - Frontend updates can silently break it. It targets the
comfy-multiline-inputCSS class, and ComfyUI has been through a frontend rewrite (Nodes 2.0) that broke plenty of third-party packs. If the class name changes, the selector stops matching and the extension quietly does nothing. Not much you can do except re-check after big ComfyUI updates. - It's young. This is a single-commit project with essentially zero community footprint yet - don't be surprised if issues crop up. For a two-file fix, that's a reasonable risk, but it's worth knowing before you depend on it.
Worth the install if you live on a trackpad. Just don't expect the node to do anything - the magic is in the plumbing.
Inputs (0)
No inputs
Outputs (0)
No outputs