diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index c345f6bf7a..cc4c831ae9 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -284,16 +284,19 @@ wxBitmap* BitmapCache::load_svg(const std::string &bitmap_name, unsigned target_ auto it = m_map.find(folder + bitmap_key); if (it != m_map.end()) return it->second; - else { + // It's expensive to check if the bitmap exists every time, but otherwise: + // For the case, when application was started in Light mode and then switched to the Dark, + // we will never get a white bitmaps, if check m_map.find(bitmap_key) + // before boost::filesystem::exists(var(folder + bitmap_name + ".svg")) + if (!boost::filesystem::exists(var(folder + bitmap_name + ".svg"))) { + folder.clear(); + it = m_map.find(bitmap_key); if (it != m_map.end()) return it->second; } - if (!boost::filesystem::exists(Slic3r::var(folder + bitmap_name + ".svg"))) - folder.clear(); - else - bitmap_key = folder + bitmap_key; + bitmap_key = folder + bitmap_key; } else { diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 47cd3443d9..20b713bcad 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -561,8 +561,9 @@ void MainFrame::on_dpi_changed(const wxRect &suggested_rect) wxGetApp().plater()->msw_rescale(); // update Tabs - for (auto tab : wxGetApp().tabs_list) - tab->msw_rescale(); + if (m_layout != slDlg) // Update tabs later, from the SettingsDialog, when the Settings are in the separated dialog + for (auto tab : wxGetApp().tabs_list) + tab->msw_rescale(); wxMenuBar* menu_bar = this->GetMenuBar(); for (size_t id = 0; id < menu_bar->GetMenuCount(); id++) @@ -1531,6 +1532,10 @@ void SettingsDialog::on_dpi_changed(const wxRect& suggested_rect) const int& em = em_unit(); const wxSize& size = wxSize(85 * em, 50 * em); + // update Tabs + for (auto tab : wxGetApp().tabs_list) + tab->msw_rescale(); + SetMinSize(size); Fit(); Refresh();