From: Stefan Csomor Date: Thu, 1 Oct 2009 08:59:01 +0000 (+0000) Subject: fixing setting initial value under osx_cocoa for single line text controls X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/63bcc669d81774a91f39054e8ec44f8d7ac6f760 fixing setting initial value under osx_cocoa for single line text controls git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/osx/cocoa/textctrl.mm b/src/osx/cocoa/textctrl.mm index 13b2d97897..2c91b8bc27 100644 --- a/src/osx/cocoa/textctrl.mm +++ b/src/osx/cocoa/textctrl.mm @@ -59,7 +59,8 @@ class wxMacEditHelper public : wxMacEditHelper( NSView* textView ) { - m_textView = textView ; + m_textView = textView; + m_formerState = YES; if ( textView ) { m_formerState = [textView isEditable]; @@ -422,7 +423,7 @@ void wxNSTextViewControl::WriteText(const wxString& str) m_lastKeyDownEvent = formerEvent; } -void wxNSTextViewControl::SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack ) +void wxNSTextViewControl::SetFont( const wxFont & font , const wxColour& WXUNUSED(foreground) , long WXUNUSED(windowStyle), bool WXUNUSED(ignoreBlack) ) { if ([m_textView respondsToSelector:@selector(setFont:)]) [m_textView setFont: font.OSXGetNSFont()]; @@ -581,7 +582,7 @@ void wxNSTextFieldControl::controlAction(WXWidget WXUNUSED(slf), wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer, wxWindowMac* WXUNUSED(parent), wxWindowID WXUNUSED(id), - const wxString& str, + const wxString& WXUNUSED(str), const wxPoint& pos, const wxSize& size, long style, @@ -595,7 +596,6 @@ wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer, wxNSTextScrollView* v = nil; v = [[wxNSTextScrollView alloc] initWithFrame:r]; c = new wxNSTextViewControl( wxpeer, v ); - static_cast(c)->SetStringValue(str); } else { @@ -615,7 +615,6 @@ wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer, [v setBordered:NO]; c = new wxNSTextFieldControl( wxpeer, v ); - static_cast(c)->SetStringValue(str); } return c; diff --git a/src/osx/textctrl_osx.cpp b/src/osx/textctrl_osx.cpp index 8fd25ac960..1ff3094dbc 100644 --- a/src/osx/textctrl_osx.cpp +++ b/src/osx/textctrl_osx.cpp @@ -119,7 +119,13 @@ bool wxTextCtrl::Create( wxWindow *parent, m_peer = wxWidgetImpl::CreateTextControl( this, GetParent(), GetId(), str, pos, size, style, GetExtraStyle() ); MacPostControlCreate(pos, size) ; - + +#if wxOSX_USE_COCOA + // under carbon everything can already be set before the MacPostControlCreate embedding takes place + // but under cocoa for single line textfields this only works after everything has been set up + GetTextPeer()->SetStringValue(str); +#endif + // only now the embedding is correct and we can do a positioning update MacSuperChangedPosition() ;