]> git.saurik.com Git - wxWidgets.git/commitdiff
always forcing a relayout when position changes, making mlte a system option
authorStefan Csomor <csomor@advancedconcepts.ch>
Sun, 3 Apr 2005 16:38:14 +0000 (16:38 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Sun, 3 Apr 2005 16:38:14 +0000 (16:38 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/mac/carbon/textctrl.h
src/mac/carbon/textctrl.cpp

index cd1ce78160b094f14768cc58167765d92cd1b9bf..41adf503ec7d69d02b782a9540b28016a0cfb235 100644 (file)
 #pragma interface "textctrl.h"
 #endif
 
+#if wxUSE_SYSTEM_OPTIONS
+    // set this to true if you want to use the 'classic' mlte based implementation
+    // instead of the HIView based implementation in 10.3 and upwards, the former
+    // has more features (backgrounds etc.) but may show redraw artefacts and other 
+    // problems depending on your usage, default is 'false'
+    #define wxMAC_TEXTCONTROL_USE_MLTE _T("mac.textcontrol-use-mlte")
+#endif
+
 #include "wx/control.h"
 
 WXDLLEXPORT_DATA(extern const wxChar*) wxTextCtrlNameStr;
index d83dff1b20a04282cb06d127e635d208019d63eb..7d83fac3467520fdaf2d377ecffe14590cec54a8 100644 (file)
@@ -45,6 +45,7 @@
 #include "wx/settings.h"
 #include "wx/filefn.h"
 #include "wx/utils.h"
+#include "wx/sysopt.h"
 
 #if defined(__BORLANDC__) && !defined(__WIN32__)
   #include <alloc.h>
@@ -422,7 +423,15 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
 
 #ifdef __WXMAC_OSX__
 #if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2
-    if ( UMAGetSystemVersion() >= 0x1050 )
+
+    bool tryHIView = UMAGetSystemVersion() >= 0x1030 ;
+#if wxUSE_SYSTEM_OPTIONS
+    if ( (wxSystemOptions::HasOption(wxMAC_TEXTCONTROL_USE_MLTE) ) && ( wxSystemOptions::GetOptionInt( wxMAC_TEXTCONTROL_USE_MLTE ) == 1) )
+    {
+        tryHIView = false ;
+    }
+#endif
+    if ( tryHIView )
     {
         m_peer = new wxMacMLTEHIViewControl( this , str , pos , size , style ) ;
     }
@@ -2213,7 +2222,7 @@ void wxMacMLTEClassicControl::MacUpdatePosition()
             destRect.bottom = destRect.top + 0x40000000 ;
             
         SectRect( &viewRect , &visBounds , &viewRect ) ; 
-        TXNSetRectBounds( m_txn , &viewRect , &destRect , false ) ;
+        TXNSetRectBounds( m_txn , &viewRect , &destRect , true ) ;
 /*
         TXNSetFrameBounds( m_txn, m_txnControlBounds.top, m_txnControlBounds.left,
             m_txnControlBounds.bottom - ( m_sbHorizontal ? 14 : 0 ) , m_txnControlBounds.right - ( m_sbVertical ? 14 : 0 ), m_txnFrameID);