SplitterBehavior: Fix for when the sizes are already under the minimum desired size.
diff --git a/imgui.cpp b/imgui.cpp
index 85910a6..9cf7938 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -13050,17 +13050,25 @@
         float mouse_delta = (axis == ImGuiAxis_Y) ? mouse_delta_2d.y : mouse_delta_2d.x;
 
         // Minimum pane size
-        if (mouse_delta < min_size1 - *size1)
-            mouse_delta = min_size1 - *size1;
-        if (mouse_delta > *size2 - min_size2)
-            mouse_delta = *size2 - min_size2;
+        float size_1_maximum_delta = ImMax(0.0f, *size1 - min_size1);
+        float size_2_maximum_delta = ImMax(0.0f, *size2 - min_size2);
+        if (mouse_delta < -size_1_maximum_delta)
+            mouse_delta = -size_1_maximum_delta;
+        if (mouse_delta > size_2_maximum_delta)
+            mouse_delta = size_2_maximum_delta;
 
         // Apply resize
-        *size1 += mouse_delta;
-        *size2 -= mouse_delta;
-        bb_render.Translate((axis == ImGuiAxis_X) ? ImVec2(mouse_delta, 0.0f) : ImVec2(0.0f, mouse_delta));
-
-        MarkItemValueChanged(id);
+        if (mouse_delta != 0.0f)
+        {
+            if (mouse_delta < 0.0f)
+                IM_ASSERT(*size1 + mouse_delta >= min_size1);
+            if (mouse_delta > 0.0f)
+               IM_ASSERT(*size2 - mouse_delta >= min_size2);
+            *size1 += mouse_delta;
+            *size2 -= mouse_delta;
+            bb_render.Translate((axis == ImGuiAxis_X) ? ImVec2(mouse_delta, 0.0f) : ImVec2(0.0f, mouse_delta));
+            MarkItemValueChanged(id);
+        }
     }
 
     // Render