From 823c4e96f9656176562b5baf7d1b64a8a3dfb3d8 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Sun, 3 Apr 2005 16:38:14 +0000 Subject: [PATCH] always forcing a relayout when position changes, making mlte a system option git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/mac/carbon/textctrl.h | 8 ++++++++ src/mac/carbon/textctrl.cpp | 13 +++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/wx/mac/carbon/textctrl.h b/include/wx/mac/carbon/textctrl.h index cd1ce78160..41adf503ec 100644 --- a/include/wx/mac/carbon/textctrl.h +++ b/include/wx/mac/carbon/textctrl.h @@ -16,6 +16,14 @@ #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; diff --git a/src/mac/carbon/textctrl.cpp b/src/mac/carbon/textctrl.cpp index d83dff1b20..7d83fac346 100644 --- a/src/mac/carbon/textctrl.cpp +++ b/src/mac/carbon/textctrl.cpp @@ -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 @@ -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); -- 2.45.2