From 2c59674955f080b6091a814aee0968cd6532bd8a Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Mon, 4 Dec 2023 23:32:12 +0900 Subject: [PATCH] fix: ignoring keydown when 2nd open --- web/extensions/core/maskeditor.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/web/extensions/core/maskeditor.js b/web/extensions/core/maskeditor.js index a32bdb63dc1..1ea4dbcaa5c 100644 --- a/web/extensions/core/maskeditor.js +++ b/web/extensions/core/maskeditor.js @@ -196,7 +196,7 @@ class MaskEditorDialog extends ComfyDialog { this.element.appendChild(bottom_panel); document.body.appendChild(brush); - var brush_size_slider = this.createLeftSlider(self, "Thickness", (event) => { + this.brush_size_slider = this.createLeftSlider(self, "Thickness", (event) => { self.brush_size = event.target.value; self.updateBrushPreview(self, null, null); }); @@ -224,7 +224,7 @@ class MaskEditorDialog extends ComfyDialog { bottom_panel.appendChild(clearButton); bottom_panel.appendChild(this.saveButton); bottom_panel.appendChild(cancelButton); - bottom_panel.appendChild(brush_size_slider); + bottom_panel.appendChild(this.brush_size_slider); imgCanvas.style.position = "absolute"; maskCanvas.style.position = "absolute"; @@ -280,6 +280,9 @@ class MaskEditorDialog extends ComfyDialog { observer.observe(this.element, config); } + // The keydown event needs to be reconfigured when closing the dialog as it gets removed. + document.addEventListener('keydown', MaskEditorDialog.handleKeyDown); + if(ComfyApp.clipspace_return_node) { this.saveButton.innerText = "Save to node"; } @@ -437,7 +440,6 @@ class MaskEditorDialog extends ComfyDialog { maskCanvas.addEventListener('pointerleave', (event) => { this.brush.style.display = "none"; }); document.addEventListener('pointerup', MaskEditorDialog.handlePointerUp); - document.addEventListener('keydown', MaskEditorDialog.handleKeyDown); this.handler_registered = true; } @@ -453,8 +455,10 @@ class MaskEditorDialog extends ComfyDialog { const self = MaskEditorDialog.instance; if (event.key === ']') { self.brush_size = Math.min(self.brush_size+2, 100); + self.brush_slider_input.value = self.brush_size; } else if (event.key === '[') { self.brush_size = Math.max(self.brush_size-2, 1); + self.brush_slider_input.value = self.brush_size; } else if(event.key === 'Enter') { self.save(); }