diff --git a/kicad/pcm/dialogs/panel_package.cpp b/kicad/pcm/dialogs/panel_package.cpp
index ebdc381595..3a992f759a 100644
--- a/kicad/pcm/dialogs/panel_package.cpp
+++ b/kicad/pcm/dialogs/panel_package.cpp
@@ -51,7 +51,8 @@ PANEL_PACKAGE::PANEL_PACKAGE( wxWindow* parent, const ActionCallback& aCallback,
m_minHeight = GetMinHeight();
double descLineHeight = m_desc->GetTextExtent( wxT( "X" ) ).GetHeight() * 1.2 /* leading */;
- m_desc->SetLabel( m_data.package.description );
+ m_desc->SetLabelText( m_data.package.description );
+ m_desc->Wrap( m_descSizer->GetSize().GetWidth() );
descLineHeight = wxSplit( m_desc->GetLabel(), '\n' ).size() * descLineHeight;
int nameLineHeight = m_name->GetTextExtent( wxT( "X" ) ).GetHeight();
@@ -80,6 +81,16 @@ PANEL_PACKAGE::PANEL_PACKAGE( wxWindow* parent, const ActionCallback& aCallback,
void PANEL_PACKAGE::OnSize( wxSizeEvent& event )
{
Layout();
+
+ double descLineHeight = m_desc->GetTextExtent( wxT( "X" ) ).GetHeight() * 1.2 /* leading */;
+ m_desc->SetLabelText( m_data.package.description );
+ m_desc->Wrap( m_descSizer->GetSize().GetWidth() );
+ descLineHeight = wxSplit( m_desc->GetLabel(), '\n' ).size() * descLineHeight;
+
+ int nameLineHeight = m_name->GetTextExtent( wxT( "X" ) ).GetHeight();
+ wxSize minSize = GetMinSize();
+ minSize.y = std::max( nameLineHeight + KiROUND( descLineHeight ) + 15, m_minHeight );
+ SetMinSize( minSize );
}
diff --git a/kicad/pcm/dialogs/panel_package_base.cpp b/kicad/pcm/dialogs/panel_package_base.cpp
index e40ce8547e..bb956cb4c7 100644
--- a/kicad/pcm/dialogs/panel_package_base.cpp
+++ b/kicad/pcm/dialogs/panel_package_base.cpp
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b3)
+// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -54,9 +54,14 @@ PANEL_PACKAGE_BASE::PANEL_PACKAGE_BASE( wxWindow* parent, wxWindowID id, const w
wxBoxSizer* bSizer3;
bSizer3 = new wxBoxSizer( wxHORIZONTAL );
+ m_descSizer = new wxBoxSizer( wxVERTICAL );
+
m_desc = new wxStaticText( this, wxID_ANY, _("Description"), wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE );
m_desc->Wrap( -1 );
- bSizer3->Add( m_desc, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
+ m_descSizer->Add( m_desc, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+
+ bSizer3->Add( m_descSizer, 1, wxEXPAND, 5 );
wxBoxSizer* bSizer4;
bSizer4 = new wxBoxSizer( wxVERTICAL );
diff --git a/kicad/pcm/dialogs/panel_package_base.fbp b/kicad/pcm/dialogs/panel_package_base.fbp
index 149c02d9b7..fe69dc7589 100644
--- a/kicad/pcm/dialogs/panel_package_base.fbp
+++ b/kicad/pcm/dialogs/panel_package_base.fbp
@@ -261,63 +261,74 @@
none