From dd8cb89f6dda3fac7045f7d7ef049567f7a7303c Mon Sep 17 00:00:00 2001 From: Francesco Palmarini Date: Thu, 14 May 2026 18:41:04 +0200 Subject: [PATCH] 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. --- src/slic3r/GUI/BaseTransparentDPIFrame.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/BaseTransparentDPIFrame.cpp b/src/slic3r/GUI/BaseTransparentDPIFrame.cpp index 162a3d2d67..fa2b8cab91 100644 --- a/src/slic3r/GUI/BaseTransparentDPIFrame.cpp +++ b/src/slic3r/GUI/BaseTransparentDPIFrame.cpp @@ -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 \ No newline at end of file +}} // namespace Slic3r::GUI