diff --git a/Userland/Libraries/LibGUI/Splitter.cpp b/Userland/Libraries/LibGUI/Splitter.cpp index ade4ab746f..6e442cfc57 100644 --- a/Userland/Libraries/LibGUI/Splitter.cpp +++ b/Userland/Libraries/LibGUI/Splitter.cpp @@ -139,6 +139,12 @@ void Splitter::mousedown_event(MouseEvent& event) m_first_resizee_start_size = m_first_resizee->size(); m_second_resizee_start_size = m_second_resizee->size(); m_resize_origin = event.position(); + + VERIFY(layout()); + auto spacer = layout()->spacing(); + auto splitter = size().primary_size_for_orientation(m_orientation); + m_first_resizee_max_size = splitter - spacer - m_second_resizee->calculated_min_size().value_or({ 0, 0 }).primary_size_for_orientation(m_orientation).as_int(); + m_second_resizee_max_size = splitter - spacer - m_first_resizee->calculated_min_size().value_or({ 0, 0 }).primary_size_for_orientation(m_orientation).as_int(); } Gfx::IntRect Splitter::rect_between_widgets(GUI::Widget const& first_widget, GUI::Widget const& second_widget, bool honor_grabbable_margins) const diff --git a/Userland/Libraries/LibGUI/Splitter.h b/Userland/Libraries/LibGUI/Splitter.h index c48e82e2c0..82ad1e676e 100644 --- a/Userland/Libraries/LibGUI/Splitter.h +++ b/Userland/Libraries/LibGUI/Splitter.h @@ -59,6 +59,8 @@ private: int m_second_resizee_minimum_size { 0 }; FixedResizee m_fixed_resizee { FixedResizee::First }; size_t m_last_child_count { 0 }; + int m_first_resizee_max_size { 0 }; + int m_second_resizee_max_size { 0 }; void recompute_grabbables();