diff --git a/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js b/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js index 9c9589ccb..714e29de6 100644 --- a/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js +++ b/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js @@ -474,25 +474,16 @@ onUiLoaded(async() => { if (input) { input.click(); if (!withoutValue) { - const maxValue = - parseFloat(input.getAttribute("max")) || 100; - if (opts.canvas_hotkey_brush_factor_mode === "Radius") { - const changeAmount = maxValue * (percentage / 100); - const newValue = - parseFloat(input.value) + - (deltaY > 0 ? -changeAmount : changeAmount); - input.value = Math.min(Math.max(newValue, 0), maxValue); - } else { - const brush_factor = deltaY > 0 ? 1 - opts.canvas_hotkey_brush_factor : 1 + opts.canvas_hotkey_brush_factor; - const currentRadius = parseFloat(input.value); - let delta = Math.sqrt(currentRadius ** 2 * brush_factor) - currentRadius; - // gradio seems to have a minimum brush size step of 1 - if (Math.abs(delta) < 1) { - delta = delta > 0 ? 1 : -1; - } - const newValue = currentRadius + delta; - input.value = Math.min(Math.max(newValue, 0), maxValue); + const maxValue = parseFloat(input.getAttribute("max")) || 100; + const brush_factor = deltaY > 0 ? 1 - opts.canvas_hotkey_brush_factor : 1 + opts.canvas_hotkey_brush_factor; + const currentRadius = parseFloat(input.value); + let delta = Math.sqrt(currentRadius ** 2 * brush_factor) - currentRadius; + // minimum brush size step of 1 + if (Math.abs(delta) < 1) { + delta = deltaY > 0 ? -1 : 1; } + let newValue = currentRadius + delta; + input.value = Math.min(Math.max(newValue, 1), maxValue); input.dispatchEvent(new Event("change")); } } diff --git a/extensions-builtin/canvas-zoom-and-pan/scripts/hotkey_config.py b/extensions-builtin/canvas-zoom-and-pan/scripts/hotkey_config.py index f31607644..18889583a 100644 --- a/extensions-builtin/canvas-zoom-and-pan/scripts/hotkey_config.py +++ b/extensions-builtin/canvas-zoom-and-pan/scripts/hotkey_config.py @@ -16,6 +16,5 @@ shared.options_templates.update(shared.options_section(('canvas_hotkey', "Canvas "canvas_auto_expand": shared.OptionInfo(True, "Automatically expands an image that does not fit completely in the canvas area, similar to manually pressing the S and R buttons"), "canvas_blur_prompt": shared.OptionInfo(False, "Take the focus off the prompt when working with a canvas"), "canvas_disabled_functions": shared.OptionInfo(["Overlap"], "Disable function that you don't use", gr.CheckboxGroup, {"choices": ["Zoom", "Adjust brush size", "Hotkey enlarge brush", "Hotkey shrink brush", "Undo", "Clear", "Moving canvas", "Fullscreen", "Reset Zoom", "Overlap"]}), - "canvas_hotkey_brush_factor_mode": shared.OptionInfo("Area", "Brush size adjustment mode", gr.Radio, {"choices": ["Area", "Radius"]}), - "canvas_hotkey_brush_factor": shared.OptionInfo(0.1, "Brush factor", gr.Slider, {"minimum": 0, "maximum": 2, "step": 0.01}) + "canvas_hotkey_brush_factor": shared.OptionInfo(0.1, "Brush size change rate", gr.Slider, {"minimum": 0, "maximum": 1, "step": 0.01}).info('controls how much the brush size is changed when using hotkeys or scroll wheel'), }))