Only set native label if nonempty in wxWindowMac::SetPeer()

Some native controls don't take kindly to being set setStringValue: with
a value invalid for the control (such as empty string for
NSPathControl). Don't do this if the label is empty anyway to avoid
problems with wxNativeWindow when the underlying native control is like
that.

(This is backport of db9baf9 from master)
This commit is contained in:
Václav Slavík
2015-08-15 18:54:02 +02:00
parent f8249a7275
commit 05862e608d

View File

@@ -356,7 +356,8 @@ void wxWindowMac::SetPeer(wxOSXWidgetImpl* peer)
if ( !m_hasFont )
DoSetWindowVariant( m_windowVariant );
GetPeer()->SetLabel( wxStripMenuCodes(m_label, wxStrip_Mnemonics), GetFont().GetEncoding() ) ;
if ( !m_label.empty() )
GetPeer()->SetLabel( wxStripMenuCodes(m_label, wxStrip_Mnemonics), GetFont().GetEncoding() ) ;
// for controls we want to use best size for wxDefaultSize params )
if ( !GetPeer()->IsUserPane() )