]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/stattext_osx.cpp
avoiding focus lost events when a different subview gets focused, see #14042
[wxWidgets.git] / src / osx / stattext_osx.cpp
index 0ff943ff6d6e930d3409237f978c9e21f93aae3f..acbb1f67badaba87869bcd14f9031e5dbc8aa411 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/osx/carbon/stattext.cpp
+// Name:        src/osx/stattext_osx.cpp
 // Purpose:     wxStaticText
 // Author:      Stefan Csomor
 // Modified by:
@@ -35,17 +35,25 @@ bool wxStaticText::Create( wxWindow *parent,
     const wxSize& size,
     long style,
     const wxString& name )
-{
-    m_macIsUserPane = false;
-
+{    
+    DontCreatePeer();
+    
     if ( !wxControl::Create( parent, id, pos, size, style, wxDefaultValidator, name ) )
         return false;
 
-    m_peer = wxWidgetImpl::CreateStaticText( this, parent, id, label, pos, size, style, GetExtraStyle() );
+    SetPeer(wxWidgetImpl::CreateStaticText( this, parent, id, label, pos, size, style, GetExtraStyle() ));
 
     MacPostControlCreate( pos, size );
 
     SetLabel(label);
+    if ( HasFlag(wxST_NO_AUTORESIZE) )
+    {
+        // Normally this is done in SetLabel() below but we avoid doing it when
+        // this style is used, so we need to explicitly do it in the ctor in
+        // this case or otherwise the control would retain its initial tiny size.
+        InvalidateBestSize();
+        SetInitialSize(size);
+    }
 
     return true;
 }
@@ -101,7 +109,7 @@ bool wxStaticText::SetFont(const wxFont& font)
 void wxStaticText::DoSetLabel(const wxString& label)
 {
     m_label = RemoveMnemonics(label);
-    m_peer->SetLabel(m_label , GetFont().GetEncoding() );
+    GetPeer()->SetLabel(m_label , GetFont().GetEncoding() );
 }
 
 #if wxUSE_MARKUP && wxOSX_USE_COCOA
@@ -111,7 +119,7 @@ bool wxStaticText::DoSetLabelMarkup(const wxString& markup)
     if ( !wxStaticTextBase::DoSetLabelMarkup(markup) )
         return false;
 
-    m_peer->SetLabelMarkup(markup);
+    GetPeer()->SetLabelMarkup(markup);
 
     return true;
 }