diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 66ac7a9798..c201d4018b 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -115,6 +115,16 @@ bool GUI_App::OnInit() update_mode(); SetTopWindow(mainframe); + CallAfter([this]() { + // temporary workaround for the correct behavior of the Scrolled sidebar panel + auto& panel = sidebar(); + if (panel.obj_list()->GetMinHeight() > 200) { + wxWindowUpdateLocker noUpdates_sidebar(&panel); + panel.obj_list()->SetMinSize(wxSize(-1, 200)); + panel.Layout(); + } + }); + // This makes CallAfter() work Bind(wxEVT_IDLE, [this](wxIdleEvent& event) { diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index a616307ba6..01815cfd65 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -83,7 +83,10 @@ ObjectList::~ObjectList() void ObjectList::create_objects_ctrl() { - SetMinSize(wxSize(-1, 150)); // TODO - Set correct height according to the opened/closed objects + // temporary workaround for the correct behavior of the Scrolled sidebar panel: + // 1. set a height of the list to some big value + // 2. change it to the normal min value (200) after first whole App updating/layouting + SetMinSize(wxSize(-1, 1500)); // #ys_FIXME m_sizer = new wxBoxSizer(wxVERTICAL); m_sizer->Add(this, 1, wxGROW | wxLEFT, 20);