diff options
author | Daniel Rentz [dr] <daniel.rentz@oracle.com> | 2011-03-15 14:58:50 +0100 |
---|---|---|
committer | Daniel Rentz [dr] <daniel.rentz@oracle.com> | 2011-03-15 14:58:50 +0100 |
commit | 70cabe8ffa193c57a702bc618d729e5daba9e525 (patch) | |
tree | 88cfb36b2525b5248a1968a3bc896f8f166c25ba /basic | |
parent | 1f945adf29f5ae63d174d76252ce39d7f38f6062 (diff) | |
parent | d07e4ca3fedf2c59bc4867ed4dd931dd35149cbb (diff) |
dr80: rebase to DEV300_m102
Diffstat (limited to 'basic')
-rw-r--r-- | basic/source/app/app.cxx | 9 | ||||
-rw-r--r-- | basic/source/app/app.hxx | 1 | ||||
-rw-r--r-- | basic/source/app/appwin.cxx | 8 | ||||
-rw-r--r-- | basic/source/runtime/dllmgr.cxx | 17 | ||||
-rwxr-xr-x | basic/source/runtime/step2.cxx | 2 |
5 files changed, 24 insertions, 13 deletions
diff --git a/basic/source/app/app.cxx b/basic/source/app/app.cxx index cd3e1dd0061f..34f9e5096fb1 100644 --- a/basic/source/app/app.cxx +++ b/basic/source/app/app.cxx @@ -857,6 +857,15 @@ void BasicFrame::Resize() } } +Rectangle BasicFrame::GetInnerRect() const +{ + Rectangle aRect( Point(0,0), GetOutputSizePixel() ); + aRect.Bottom() = pStatus->GetPosPixel().Y()-1; + if( aRect.Bottom() < 0 ) // sanity check + aRect.Bottom() = 0; + return aRect; +} + void BasicFrame::Move() { Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") )); diff --git a/basic/source/app/app.hxx b/basic/source/app/app.hxx index 5a501ec5efcf..47dd5056fb58 100644 --- a/basic/source/app/app.hxx +++ b/basic/source/app/app.hxx @@ -188,6 +188,7 @@ public: void SetAppMode( const String &aNewMode ){ aAppMode = aNewMode; UpdateTitle(); } String GenRealString( const String &aResString ); + Rectangle GetInnerRect() const; }; diff --git a/basic/source/app/appwin.cxx b/basic/source/app/appwin.cxx index 4d0a5f95fca4..eb80a96f4183 100644 --- a/basic/source/app/appwin.cxx +++ b/basic/source/app/appwin.cxx @@ -121,14 +121,8 @@ void AppWin::Maximize() pFrame->nMaximizedWindows++; nWinState = TT_WIN_STATE_MAX; } - sal_Int32 nTitleHeight; - { - sal_Int32 nDummy1, nDummy2, nDummy3; - pFrame->GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 ); - } - Size aSize = pFrame->GetOutputSizePixel(); - aSize.Height() -= nTitleHeight; + Size aSize = pFrame->GetInnerRect().GetSize(); aSize.Height() -= 2; aSize.Width() -= 2; SetSizePixel( aSize ); diff --git a/basic/source/runtime/dllmgr.cxx b/basic/source/runtime/dllmgr.cxx index 8cc6ce7edd82..8baf819372ba 100644 --- a/basic/source/runtime/dllmgr.cxx +++ b/basic/source/runtime/dllmgr.cxx @@ -36,6 +36,7 @@ #include "basic/sbx.hxx" #include "basic/sbxvar.hxx" +#include "runtime.hxx" #include "osl/thread.h" #include "rtl/ref.hxx" #include "rtl/string.hxx" @@ -266,9 +267,15 @@ SbError marshal( std::vector< char > & blob, std::size_t offset, MarshalData & data) { OSL_ASSERT(variable != 0); - if ((variable->GetFlags() & SBX_REFERENCE) == 0) { - if ((variable->GetType() & SbxARRAY) == 0) { - switch (variable->GetType()) { + + SbxDataType eVarType = variable->GetType(); + bool bByVal = (variable->GetFlags() & SBX_REFERENCE) == 0; + if( !bByVal && !SbiRuntime::isVBAEnabled() && eVarType == SbxSTRING ) + bByVal = true; + + if (bByVal) { + if ((eVarType & SbxARRAY) == 0) { + switch (eVarType) { case SbxINTEGER: add(blob, variable->GetInteger(), outer ? 4 : 2, offset); break; @@ -317,8 +324,8 @@ SbError marshal( } } } else { - if ((variable->GetType() & SbxARRAY) == 0) { - switch (variable->GetType()) { + if ((eVarType & SbxARRAY) == 0) { + switch (eVarType) { case SbxINTEGER: case SbxLONG: case SbxSINGLE: diff --git a/basic/source/runtime/step2.cxx b/basic/source/runtime/step2.cxx index 02b22a35b732..bbb3668b5b69 100755 --- a/basic/source/runtime/step2.cxx +++ b/basic/source/runtime/step2.cxx @@ -521,7 +521,7 @@ SbxVariable* SbiRuntime::CheckArray( SbxVariable* pElem ) pPar->Put( NULL, 0 ); } // Index-Access bei UnoObjekten beruecksichtigen - else if( pElem->GetType() == SbxOBJECT && (!pElem->ISA(SbxMethod) || !pElem->IsBroadcaster()) ) + else if( pElem->GetType() == SbxOBJECT && (!pElem->ISA(SbxMethod) || (bVBAEnabled && !pElem->IsBroadcaster()) ) ) { pPar = pElem->GetParameters(); if ( pPar ) |