|
@@ -95,11 +95,16 @@ void SplitContainer::_resort() {
|
|
no_offset_middle_sep = ms_first[axis];
|
|
no_offset_middle_sep = ms_first[axis];
|
|
}
|
|
}
|
|
|
|
|
|
- // Compute the final middle separation
|
|
|
|
|
|
+ // Compute the final middle separation.
|
|
middle_sep = no_offset_middle_sep;
|
|
middle_sep = no_offset_middle_sep;
|
|
|
|
+ if (prev_no_offset_middle_sep != INT_MAX) {
|
|
|
|
+ split_offset -= middle_sep - prev_no_offset_middle_sep;
|
|
|
|
+ }
|
|
|
|
+ prev_no_offset_middle_sep = middle_sep;
|
|
|
|
+
|
|
if (!collapsed) {
|
|
if (!collapsed) {
|
|
- int clamped_split_offset = CLAMP(split_offset, ms_first[axis] - no_offset_middle_sep, get_size()[axis] - ms_second[axis] - sep);
|
|
|
|
- middle_sep = MAX(middle_sep, clamped_split_offset);
|
|
|
|
|
|
+ int clamped_split_offset = CLAMP(split_offset, ms_first[axis] - no_offset_middle_sep, (get_size()[axis] - ms_second[axis] - sep) - no_offset_middle_sep);
|
|
|
|
+ middle_sep += clamped_split_offset;
|
|
if (should_clamp_split_offset) {
|
|
if (should_clamp_split_offset) {
|
|
split_offset = clamped_split_offset;
|
|
split_offset = clamped_split_offset;
|
|
should_clamp_split_offset = false;
|
|
should_clamp_split_offset = false;
|