fixed a canvas length mismatching bug.

This commit is contained in:
bruefire
2023-12-09 16:29:35 +09:00
parent 1875e84518
commit d9428573e4
+15 -2
View File
@@ -254,6 +254,7 @@ class MaskEditorDialog extends ComfyDialog {
var cancelButton = this.createRightButton("Cancel", () => {
document.removeEventListener("mouseup", MaskEditorDialog.handleMouseUp);
document.removeEventListener("keydown", MaskEditorDialog.handleKeyDown);
self.close();
});
@@ -341,6 +342,11 @@ class MaskEditorDialog extends ComfyDialog {
const config = { attributes: true };
observer.observe(this.element, config);
}
else if(this.#paths.length != this.backMaskCanvases.length) {
this.backMaskCanvases = [...new Array(this.#paths.length)].map(_ => document.createElement("canvas"));
this.backSketchCanvases = [...new Array(this.#paths.length)].map(_ => document.createElement("canvas"));
}
this.setImages(this.imgCanvas, this.backupCanvas);
@@ -375,7 +381,7 @@ class MaskEditorDialog extends ComfyDialog {
// image load
const orig_image = new Image();
window.addEventListener("resize", () => {
this.resizingEventHandler = () => {
// repositioning
imgCanvas.width = window.innerWidth - 250;
imgCanvas.height = window.innerHeight - 200;
@@ -415,7 +421,9 @@ class MaskEditorDialog extends ComfyDialog {
this.prepareSketchLayer();
maskCtx.drawImage(this.getBackCanvasForCurrentMode(this.#selectedIndex), 0, 0, maskCanvas.width, maskCanvas.height);
});
};
window.addEventListener("resize", this.resizingEventHandler);
const touched_image = new Image();
@@ -723,6 +731,11 @@ class MaskEditorDialog extends ComfyDialog {
this.close();
}
close() {
window.removeEventListener("resize", this.resizingEventHandler);
super.close();
}
#_updatePathDataHnadler = null;
get #updatePathDataHnadler() {