diff --git a/toonz/sources/tnztools/fullcolorbrushtool.cpp b/toonz/sources/tnztools/fullcolorbrushtool.cpp
index f1dc3e0..22eb7d7 100644
--- a/toonz/sources/tnztools/fullcolorbrushtool.cpp
+++ b/toonz/sources/tnztools/fullcolorbrushtool.cpp
@@ -364,10 +364,7 @@ void FullColorBrushTool::inputMouseMove(
   struct Locals {
     FullColorBrushTool *m_this;
 
-    void setValue(TIntPairProperty &prop,
-                  const TIntPairProperty::Value &value) {
-      prop.setValue(value);
-
+    void notify(TProperty &prop) {
       m_this->onPropertyChanged(prop.getName());
       TTool::getApplication()->getCurrentTool()->notifyToolChanged();
     }
@@ -379,8 +376,9 @@ void FullColorBrushTool::inputMouseMove(
       value.second =
           tcrop<double>(value.second + add, range.first, range.second);
       value.first = tcrop<double>(value.first + add, range.first, range.second);
+      prop.setValue(value);
 
-      setValue(prop, value);
+      notify(prop);
     }
 
     void addMinMaxSeparate(TIntPairProperty &prop, double min, double max) {
@@ -392,17 +390,31 @@ void FullColorBrushTool::inputMouseMove(
       value.second += max;
       if (value.first > value.second) value.first = value.second;
       value.first  = tcrop<double>(value.first, range.first, range.second);
+
       value.second = tcrop<double>(value.second, range.first, range.second);
+      prop.setValue(value);
 
-      setValue(prop, value);
+      notify(prop);
+    }
+
+    void add(TDoubleProperty &prop, double x) {
+      if (x == 0.0) return;
+
+      const TDoubleProperty::Range &range = prop.getRange();
+      double value = tcrop<double>(prop.getValue() + x, range.first, range.second);
+      prop.setValue(value);
+
+      notify(prop);
     }
   } locals = {this};
 
   if (state.isKeyPressed(TKey::control) && state.isKeyPressed(TKey::alt)) {
     const TPointD &diff = position - m_mousePos;
-    double max          = diff.x / 2;
-    double min          = diff.y / 2;
-    locals.addMinMaxSeparate(m_thickness, int(min), int(max));
+    if (getBrushStyle()) {
+      locals.add(m_modifierSize, 0.01*diff.x);
+    } else {
+      locals.addMinMaxSeparate(m_thickness, int(diff.x/2), int(diff.y/2));
+    }
   } else {
     m_brushPos = position;
   }