From 6373ee2b85b757b3320f9290dce0ed1fdbe4f242 Mon Sep 17 00:00:00 2001 From: YuSanka <yusanka@gmail.com> Date: Fri, 26 Apr 2019 12:29:34 +0200 Subject: [PATCH] Rescale under MSW : fixed rendering of MainFrame, if it was maximized during moving --- src/slic3r/GUI/MainFrame.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 5a63bedaa..571b57235 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -276,12 +276,26 @@ void MainFrame::on_dpi_changed(const wxRect &suggested_rect) for (auto tab : wxGetApp().tabs_list) tab->msw_rescale(); + // Workarounds for correct Window rendering after rescale + + /* Even if Window is maximized during moving, + * first of all we should imitate Window resizing. So: + * 1. cancel maximization, if it was set + * 2. imitate resizing + * 3. set maximization, if it was set + */ + const bool is_maximized = this->IsMaximized(); + if (is_maximized) + this->Maximize(false); + /* To correct window rendering (especially redraw of a status bar) * we should imitate window resizing. */ const wxSize& sz = this->GetSize(); this->SetSize(sz.x + 1, sz.y + 1); this->SetSize(sz); + + this->Maximize(is_maximized); } void MainFrame::init_menubar()