diff --git a/Userland/Libraries/LibGUI/IconView.cpp b/Userland/Libraries/LibGUI/IconView.cpp index 5308aa077c..9179c4d06b 100644 --- a/Userland/Libraries/LibGUI/IconView.cpp +++ b/Userland/Libraries/LibGUI/IconView.cpp @@ -72,6 +72,12 @@ void IconView::resize_event(ResizeEvent& event) { AbstractView::resize_event(event); update_content_size(); + + if (!m_had_valid_size) { + m_had_valid_size = true; + if (!selection().is_empty()) + scroll_into_view(selection().first()); + } } void IconView::reinit_item_cache() const diff --git a/Userland/Libraries/LibGUI/IconView.h b/Userland/Libraries/LibGUI/IconView.h index ecc895f645..dcc0d964f3 100644 --- a/Userland/Libraries/LibGUI/IconView.h +++ b/Userland/Libraries/LibGUI/IconView.h @@ -182,6 +182,8 @@ private: mutable bool m_item_data_cache_valid { false }; bool m_changing_selection { false }; + + bool m_had_valid_size { false }; }; }