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()