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
This commit is contained in:
Stefan Csomor
2005-04-03 16:38:14 +00:00
parent c9698388a2
commit 823c4e96f9
2 changed files with 19 additions and 2 deletions

View File

@@ -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;

View 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);