diff --git a/src/components/maskeditor/BrushSettingsPanel.vue b/src/components/maskeditor/BrushSettingsPanel.vue index 4778d2cff3..37a78b11bd 100644 --- a/src/components/maskeditor/BrushSettingsPanel.vue +++ b/src/components/maskeditor/BrushSettingsPanel.vue @@ -72,12 +72,12 @@ /> @@ -182,6 +182,26 @@ const brushSize = computed({ set: (value: number) => store.setBrushSize(value) }) +const rawSliderValue = ref(null) + +const brushSizeSliderValue = computed({ + get: () => { + if (rawSliderValue.value !== null) { + const cachedSize = Math.round(Math.pow(250, rawSliderValue.value)) + if (cachedSize === brushSize.value) { + return rawSliderValue.value + } + } + + return Math.log(brushSize.value) / Math.log(250) + }, + set: (value: number) => { + rawSliderValue.value = value + const size = Math.round(Math.pow(250, value)) + store.setBrushSize(size) + } +}) + const brushOpacity = computed({ get: () => store.brushSettings.opacity, set: (value: number) => store.setBrushOpacity(value)