From 4cd4d2c8b5f8bea59da2a0fbdb096cb6b7391250 Mon Sep 17 00:00:00 2001
From: YuSanka <yusanka@gmail.com>
Date: Tue, 13 Aug 2019 17:09:42 +0200
Subject: [PATCH] Fixed wrong page selection for Printer Setting after
 application run

---
 src/libslic3r/Config.hpp | 4 +++-
 src/slic3r/GUI/Tab.cpp   | 7 +++++--
 src/slic3r/GUI/Tab.hpp   | 2 +-
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp
index ff5563226..fdf00c2d0 100644
--- a/src/libslic3r/Config.hpp
+++ b/src/libslic3r/Config.hpp
@@ -91,7 +91,9 @@ enum ConfigOptionType {
 enum ConfigOptionMode {
     comSimple = 0,
     comAdvanced,
-    comExpert
+    comExpert,
+
+    comUndef
 };
 
 enum PrinterTechnology : unsigned char
diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
index 0377fdbbf..aeb520d09 100644
--- a/src/slic3r/GUI/Tab.cpp
+++ b/src/slic3r/GUI/Tab.cpp
@@ -729,10 +729,15 @@ void Tab::update_mode()
     m_mode_sizer->SetMode(m_mode);
 
     update_visibility();
+
+    update_changed_tree_ui();
 }
 
 void Tab::update_visibility()
 {
+    if (m_mode == comUndef) // if mode isn't set for this moment
+        m_mode = wxGetApp().get_mode();
+
     Freeze(); // There is needed Freeze/Thaw to avoid a flashing after Show/Layout
 
     for (auto page : m_pages)
@@ -741,8 +746,6 @@ void Tab::update_visibility()
 
     Layout();
     Thaw();
-
-    update_changed_tree_ui();
 }
 
 void Tab::msw_rescale()
diff --git a/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp
index 423bc198f..3aa183540 100644
--- a/src/slic3r/GUI/Tab.hpp
+++ b/src/slic3r/GUI/Tab.hpp
@@ -218,7 +218,7 @@ protected:
     int                 m_em_unit;
     // To avoid actions with no-completed Tab
     bool                m_complited { false };
-    ConfigOptionMode    m_mode = comSimple;
+    ConfigOptionMode    m_mode = comUndef;
 
 public:
 	PresetBundle*		m_preset_bundle;