diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-08-10 14:04:38 +0000 |
---|---|---|
committer | AUTOMATIC1111 <16777216c@gmail.com> | 2023-08-10 14:04:38 +0000 |
commit | 70a01cd4440d708bf25cc50393c0430935a8ebc2 (patch) | |
tree | daad07800a3dadfd3caeac1383c1c65ecfcb6284 /extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js | |
parent | 1aefb5025929818b2a96cbb6148fcc2db7b947ec (diff) | |
parent | 070b034cd5b49eb5056a18b43f88aa223fec9e0b (diff) | |
download | stable-diffusion-webui-gfx803-70a01cd4440d708bf25cc50393c0430935a8ebc2.tar.gz stable-diffusion-webui-gfx803-70a01cd4440d708bf25cc50393c0430935a8ebc2.tar.bz2 stable-diffusion-webui-gfx803-70a01cd4440d708bf25cc50393c0430935a8ebc2.zip |
Merge branch 'dev' into refiner
Diffstat (limited to 'extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js')
-rw-r--r-- | extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js b/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js index 30199dcd..e7616b98 100644 --- a/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js +++ b/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js @@ -42,6 +42,11 @@ onUiLoaded(async() => { } } + // Detect whether the element has a horizontal scroll bar + function hasHorizontalScrollbar(element) { + return element.scrollWidth > element.clientWidth; + } + // Function for defining the "Ctrl", "Shift" and "Alt" keys function isModifierKey(event, key) { switch (key) { @@ -201,7 +206,8 @@ onUiLoaded(async() => { canvas_hotkey_overlap: "KeyO", canvas_disabled_functions: [], canvas_show_tooltip: true, - canvas_blur_prompt: false + canvas_auto_expand: true, + canvas_blur_prompt: false, }; const functionMap = { @@ -648,8 +654,32 @@ onUiLoaded(async() => { mouseY = e.offsetY; } + // Simulation of the function to put a long image into the screen. + // We detect if an image has a scroll bar or not, make a fullscreen to reveal the image, then reduce it to fit into the element. + // We hide the image and show it to the user when it is ready. + function autoExpand(e) { + const canvas = document.querySelector(`${elemId} canvas[key="interface"]`); + const isMainTab = activeElement === elementIDs.inpaint || activeElement === elementIDs.inpaintSketch || activeElement === elementIDs.sketch; + + if (canvas && isMainTab) { + if (hasHorizontalScrollbar(targetElement)) { + targetElement.style.visibility = "hidden"; + setTimeout(() => { + fitToScreen(); + resetZoom(); + targetElement.style.visibility = "visible"; + }, 10); + } + } + } + targetElement.addEventListener("mousemove", getMousePosition); + // Apply auto expand if enabled + if (hotkeysConfig.canvas_auto_expand) { + targetElement.addEventListener("mousemove", autoExpand); + } + // Handle events only inside the targetElement let isKeyDownHandlerAttached = false; |