From 75bda8cfd8ce7ea5995cf494bed0184889226061 Mon Sep 17 00:00:00 2001
From: YuSanka <yusanka@gmail.com>
Date: Thu, 28 Jun 2018 16:50:06 +0200
Subject: [PATCH] Addition to last commit

---
 xs/src/slic3r/GUI/Tab.cpp | 36 +++++++++++++++++++++++-------------
 xs/src/slic3r/GUI/Tab.hpp |  2 +-
 2 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp
index d3d83fee8..ba75c3c6f 100644
--- a/xs/src/slic3r/GUI/Tab.cpp
+++ b/xs/src/slic3r/GUI/Tab.cpp
@@ -45,6 +45,8 @@ void Tab::create_preset_tab(PresetBundle *preset_bundle)
 	main_sizer->SetSizeHints(this);
 	this->SetSizer(main_sizer);
 
+	// Create additional panel to Fit() it from OnActivate()
+	// It's needed for tooltip showing on OSX
 	m_tmp_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBK_LEFT | wxTAB_TRAVERSAL);
 	auto panel = m_tmp_panel; 
 	auto  sizer = new wxBoxSizer(wxVERTICAL);
@@ -293,7 +295,12 @@ PageShp Tab::add_options_page(const wxString& title, const std::string& icon, bo
 		}
 	}
 	// Initialize the page.
-	PageShp page(new Page(this, title, icon_idx));
+#ifdef __WXOSX__
+	auto panel = m_tmp_panel;
+#else
+	auto panel = this;
+#endif
+	PageShp page(new Page(panel, title, icon_idx));
 	page->SetScrollbars(1, 1, 1, 1);
 	page->Hide();
 	m_hsizer->Add(page.get(), 1, wxEXPAND | wxLEFT, 5);
@@ -309,20 +316,22 @@ void Tab::OnActivate()
 #ifdef __WXOSX__	
 	wxWindowUpdateLocker noUpdates(this);
 
+	auto sizer = GetSizer(); 
+	m_tmp_panel->GetSizer()->SetMinSize(sizer->GetSize());
 	m_tmp_panel->Fit();
 
-	Page* page = nullptr;
-	auto selection = m_treectrl->GetItemText(m_treectrl->GetSelection());
-	for (auto p : m_pages)
-		if (p->title() == selection)
-		{
-			page = p.get();
-			break;
-		}
-	if (page == nullptr) return;
-	page->Fit();
-	m_hsizer->Layout();
-	Refresh();
+// 	Page* page = nullptr;
+// 	auto selection = m_treectrl->GetItemText(m_treectrl->GetSelection());
+// 	for (auto p : m_pages)
+// 		if (p->title() == selection)
+// 		{
+// 			page = p.get();
+// 			break;
+// 		}
+// 	if (page == nullptr) return;
+// 	page->Fit();
+// 	m_hsizer->Layout();
+// 	Refresh();
 #endif // __WXOSX__
 }
 
@@ -2124,6 +2133,7 @@ void Tab::OnTreeSelChange(wxTreeEvent& event)
 #endif
 
 	page->Show();
+	page->Fit();
 	m_hsizer->Layout();
 	Refresh();
 
diff --git a/xs/src/slic3r/GUI/Tab.hpp b/xs/src/slic3r/GUI/Tab.hpp
index 6c9297c71..82670121c 100644
--- a/xs/src/slic3r/GUI/Tab.hpp
+++ b/xs/src/slic3r/GUI/Tab.hpp
@@ -200,7 +200,7 @@ public:
 	Tab() {}
 	Tab(wxNotebook* parent, const wxString& title, const char* name, bool no_controller) : 
 		m_parent(parent), m_title(title), m_name(name), m_no_controller(no_controller) {
-		Create(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBK_LEFT | wxTAB_TRAVERSAL);
+		Create(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBK_LEFT | wxTAB_TRAVERSAL, name);
 		get_tabs_list().push_back(this);
 	}
 	~Tab(){