Fix freeze after hiding sync popup (#13657)

Avoid calling Show() on the main frame when it is already visible from BaseTransparentDPIFrame::on_hide(). On GTK this can re-enter size/layout handling after filament sync and leave the UI unresponsive.
This commit is contained in:
Francesco Palmarini
2026-05-14 18:41:04 +02:00
committed by GitHub
parent 9c5f33fd57
commit dd8cb89f6d

View File

@@ -156,9 +156,11 @@ void BaseTransparentDPIFrame::on_hide()
m_refresh_timer->Stop();
}
Hide();
if (wxGetApp().mainframe != nullptr) {
wxGetApp().mainframe->Show();
wxGetApp().mainframe->Raise();
auto *mainframe = wxGetApp().mainframe;
if (mainframe != nullptr) {
if (!mainframe->IsShown())
mainframe->Show();
mainframe->Raise();
}
}
@@ -296,4 +298,4 @@ void BaseTransparentDPIFrame::deal_ok() {}
void BaseTransparentDPIFrame::deal_cancel(){}
}} // namespace Slic3r::GUI
}} // namespace Slic3r::GUI