diff --git a/common/widgets/paged_dialog.cpp b/common/widgets/paged_dialog.cpp
index 5cf0a0cfbc..f021cea112 100644
--- a/common/widgets/paged_dialog.cpp
+++ b/common/widgets/paged_dialog.cpp
@@ -114,6 +114,9 @@ PAGED_DIALOG::PAGED_DIALOG( wxWindow* aParent, const wxString& aTitle, bool aSho
void PAGED_DIALOG::finishInitialization()
{
+ for( size_t i = 1; i < m_treebook->GetPageCount(); ++i )
+ m_macHack.push_back( true );
+
// For some reason adding page labels to the treeCtrl doesn't invalidate its bestSize
// cache so we have to do it by hand
m_treebook->GetTreeCtrl()->InvalidateBestSize();
@@ -373,22 +376,33 @@ void PAGED_DIALOG::onCharHook( wxKeyEvent& aEvent )
void PAGED_DIALOG::onPageChanged( wxBookCtrlEvent& event )
{
- int page = event.GetSelection();
+ size_t page = event.GetSelection();
// Use the first sub-page when a tree level node is selected.
- if( m_treebook->GetCurrentPage()->GetChildren().IsEmpty() )
+ if( m_treebook->GetCurrentPage()->GetChildren().IsEmpty()
+ && page + 1 < m_treebook->GetPageCount() )
{
- unsigned next = page + 1;
-
- if( next < m_treebook->GetPageCount() )
- m_treebook->ChangeSelection( next );
+ m_treebook->ChangeSelection( ++page );
}
UpdateResetButton( page );
- wxSizeEvent evt( wxDefaultSize );
+#ifdef __WXMAC__
+ // Work around an OSX wxWidgets issue where the wxGrid children don't get placed correctly
+ // until the first resize event
+ if( page < m_macHack.size() && m_macHack[ page ] )
+ {
+ wxSize pageSize = m_treebook->GetPage( page )->GetSize();
+ pageSize.x -= 5;
+ pageSize.y += 2;
+ m_treebook->GetPage( page )->SetSize( pageSize );
+ m_macHack[ page ] = false;
+ }
+#else
+ wxSizeEvent evt( wxDefaultSize );
wxQueueEvent( m_treebook, evt.Clone() );
+#endif
}
diff --git a/eeschema/dialogs/panel_setup_formatting_base.cpp b/eeschema/dialogs/panel_setup_formatting_base.cpp
index 49a8eb363a..162319e381 100644
--- a/eeschema/dialogs/panel_setup_formatting_base.cpp
+++ b/eeschema/dialogs/panel_setup_formatting_base.cpp
@@ -49,8 +49,8 @@ PANEL_SETUP_FORMATTING_BASE::PANEL_SETUP_FORMATTING_BASE( wxWindow* parent, wxWi
wxFlexGridSizer* fgSizer2;
fgSizer2 = new wxFlexGridSizer( 0, 3, 5, 5 );
fgSizer2->AddGrowableCol( 1 );
- fgSizer2->SetFlexibleDirection( wxBOTH );
- fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ fgSizer2->SetFlexibleDirection( wxHORIZONTAL );
+ fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_NONE );
m_textSizeLabel = new wxStaticText( sbSizer4->GetStaticBox(), wxID_ANY, _("Default text size:"), wxDefaultPosition, wxDefaultSize, 0 );
m_textSizeLabel->Wrap( -1 );
@@ -146,7 +146,7 @@ PANEL_SETUP_FORMATTING_BASE::PANEL_SETUP_FORMATTING_BASE( wxWindow* parent, wxWi
int m_choiceJunctionDotSizeNChoices = sizeof( m_choiceJunctionDotSizeChoices ) / sizeof( wxString );
m_choiceJunctionDotSize = new wxChoice( sbSizer2->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceJunctionDotSizeNChoices, m_choiceJunctionDotSizeChoices, 0 );
m_choiceJunctionDotSize->SetSelection( 3 );
- bSizer61->Add( m_choiceJunctionDotSize, 1, wxEXPAND|wxRIGHT, 5 );
+ bSizer61->Add( m_choiceJunctionDotSize, 1, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
sbSizer2->Add( bSizer61, 0, wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
diff --git a/eeschema/dialogs/panel_setup_formatting_base.fbp b/eeschema/dialogs/panel_setup_formatting_base.fbp
index fabc904787..c5cc66cfbb 100644
--- a/eeschema/dialogs/panel_setup_formatting_base.fbp
+++ b/eeschema/dialogs/panel_setup_formatting_base.fbp
@@ -234,13 +234,13 @@
1