Commit bf7dbe47 authored by Adam Schwalm's avatar Adam Schwalm
Browse files

Add left/right/escape hotkeys for image nodes

parent 0d972b85
...@@ -102,6 +102,46 @@ class ComfyApp { ...@@ -102,6 +102,46 @@ class ComfyApp {
}; };
} }
#addNodeKeyHandler(node) {
const app = this;
const origNodeOnKeyDown = node.prototype.onKeyDown;
node.prototype.onKeyDown = function(e) {
if (origNodeOnKeyDown && origNodeOnKeyDown.apply(this, e) === false) {
return false;
}
if (this.flags.collapsed || !this.imgs || this.imageIndex === null) {
return;
}
let handled = false;
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
if (e.key === "ArrowLeft") {
this.imageIndex -= 1;
} else if (e.key === "ArrowRight") {
this.imageIndex += 1;
}
this.imageIndex %= this.imgs.length;
if (this.imageIndex < 0) {
this.imageIndex = this.imgs.length + this.imageIndex;
}
handled = true;
} else if (e.key === "Escape") {
this.imageIndex = null;
handled = true;
}
if (handled === true) {
e.preventDefault();
e.stopImmediatePropagation();
return false;
}
}
}
/** /**
* Adds Custom drawing logic for nodes * Adds Custom drawing logic for nodes
* e.g. Draws images and handles thumbnail navigation on nodes that output images * e.g. Draws images and handles thumbnail navigation on nodes that output images
...@@ -785,6 +825,7 @@ class ComfyApp { ...@@ -785,6 +825,7 @@ class ComfyApp {
this.#addNodeContextMenuHandler(node); this.#addNodeContextMenuHandler(node);
this.#addDrawBackgroundHandler(node, app); this.#addDrawBackgroundHandler(node, app);
this.#addNodeKeyHandler(node);
await this.#invokeExtensionsAsync("beforeRegisterNodeDef", node, nodeData); await this.#invokeExtensionsAsync("beforeRegisterNodeDef", node, nodeData);
LiteGraph.registerNodeType(nodeId, node); LiteGraph.registerNodeType(nodeId, node);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment