]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/textctrl.cpp
my cvs dir got screwed up and didn't commit this...
[wxWidgets.git] / src / mac / carbon / textctrl.cpp
index 7d83fac3467520fdaf2d377ecffe14590cec54a8..baa26ddc54c026003b2359a80102fec8d57849ef 100644 (file)
@@ -421,27 +421,27 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
         style |= wxTE_PROCESS_ENTER ;
     }
 
-#ifdef __WXMAC_OSX__
-#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2
-
-    bool tryHIView = UMAGetSystemVersion() >= 0x1030 ;
+    bool forceMLTE = false ;
 #if wxUSE_SYSTEM_OPTIONS
     if ( (wxSystemOptions::HasOption(wxMAC_TEXTCONTROL_USE_MLTE) ) && ( wxSystemOptions::GetOptionInt( wxMAC_TEXTCONTROL_USE_MLTE ) == 1) )
     {
-        tryHIView = false ;
+        forceMLTE = true ;
     }
 #endif
-    if ( tryHIView )
+
+#ifdef __WXMAC_OSX__
+#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2
+    if ( UMAGetSystemVersion() >= 0x1030 && forceMLTE == false )
     {
-        m_peer = new wxMacMLTEHIViewControl( this , str , pos , size , style ) ;
+        if ( m_windowStyle & wxTE_MULTILINE )
+            m_peer = new wxMacMLTEHIViewControl( this , str , pos , size , style ) ;
     }
 #endif
-#if !wxMAC_AWAYS_USE_MLTE
     if ( !m_peer )
     {
-        m_peer = new wxMacUnicodeTextControl( this , str , pos , size , style ) ;
+        if ( !(m_windowStyle & wxTE_MULTILINE) && forceMLTE == false )
+            m_peer = new wxMacUnicodeTextControl( this , str , pos , size , style ) ;
     }
-#endif
 #endif
     if ( !m_peer )
     {
@@ -1488,8 +1488,12 @@ void wxMacMLTEControl::SetStringValue( const wxString &str)
 TXNFrameOptions wxMacMLTEControl::FrameOptionsFromWXStyle( long wxStyle )
 {
     TXNFrameOptions frameOptions =
-        kTXNDontDrawCaretWhenInactiveMask ;
-        
+        kTXNDontDrawCaretWhenInactiveMask 
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
+        | kTXNDoFontSubstitutionMask
+#endif
+        ;
+
     if ( ! ( wxStyle & wxTE_NOHIDESEL ) )
         frameOptions |= kTXNDontDrawSelectionWhenInactiveMask ;
 
@@ -1528,7 +1532,7 @@ void wxMacMLTEControl::AdjustCreationAttributes( const wxColour &background, boo
         };
     TXNControlData iControlData[] = 
         { 
-            {false}, 
+            {true}, 
             {kTXNNoAutoWrap},
         };
         
@@ -1878,7 +1882,9 @@ void wxMacMLTEControl::ShowPosition( long pos )
             SInt32 dh = desired.h - current.h ;
             TXNShowSelection( m_txn , true ) ;
             theErr = TXNScroll( m_txn, kTXNScrollUnitsInPixels , kTXNScrollUnitsInPixels , &dv , &dh );
-            wxASSERT_MSG( theErr == noErr, _T("TXNScroll returned an error!") );
+            // there will be an error returned for classic mlte implementation when the control is
+            // invisible, but HITextView works correctly, so we don't assert that one
+            // wxASSERT_MSG( theErr == noErr, _T("TXNScroll returned an error!") );
         }
     }
 #endif