diff options
author | Oliver Bolte <obo@openoffice.org> | 2009-02-19 08:26:23 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2009-02-19 08:26:23 +0000 |
commit | 873cc2f9b7b226a36a786dbeab42551cc5a45d63 (patch) | |
tree | 1aae3e3a528d24a82f1f069fea54534ebcc5290f /sfx2/source/control | |
parent | f15709f61c4cc92c4a4c055289552c2bc051c9fc (diff) |
CWS-TOOLING: integrate CWS fwk102
2009-02-10 18:30:48 +0100 mav r267575 : #159157# let the hypterlink be opened in the same browser window in case of ActiveX control
2009-02-10 18:26:06 +0100 mav r267574 : #159157# let the hypterlink be opened in the same browser window in case of ActiveX control
2009-02-10 18:18:28 +0100 mav r267573 : #159157# let the hypterlink be opened in the same browser window in case of ActiveX control
2009-02-09 16:51:23 +0100 mav r267522 : #i98922# the fix from IS from native222
2009-02-09 14:48:19 +0100 os r267516 : RES_PARATR_OUTLINELEVEL added
2009-02-09 11:07:55 +0100 mav r267503 : #i97987# handle untitled documen correctly on switching to shared mode
2009-02-06 14:52:48 +0100 mav r267465 : #i98240# commit the patch
2009-02-06 13:56:09 +0100 mav r267460 : #i98206# do not get outstream ourself
Diffstat (limited to 'sfx2/source/control')
-rw-r--r-- | sfx2/source/control/bindings.cxx | 11 | ||||
-rw-r--r-- | sfx2/source/control/statcach.cxx | 23 |
2 files changed, 26 insertions, 8 deletions
diff --git a/sfx2/source/control/bindings.cxx b/sfx2/source/control/bindings.cxx index daa8412933..487c460de6 100644 --- a/sfx2/source/control/bindings.cxx +++ b/sfx2/source/control/bindings.cxx @@ -1544,8 +1544,17 @@ const SfxPoolItem* SfxBindings::Execute_Impl( sal_uInt16 nId, const SfxPoolItem* if ( pCache && pCache->GetDispatch().is() ) { + DBG_ASSERT( !ppInternalArgs, "Internal args get lost when dispatched!" ); + + SfxItemPool &rPool = GetDispatcher()->GetFrame()->GetObjectShell()->GetPool(); + SfxRequest aReq( nId, nCallMode, rPool ); + aReq.SetModifier( nModi ); + if( ppItems ) + while( *ppItems ) + aReq.AppendItem( **ppItems++ ); + // cache binds to an external dispatch provider - pCache->Dispatch( nCallMode == SFX_CALLMODE_SYNCHRON ); + pCache->Dispatch( aReq.GetArgs(), nCallMode == SFX_CALLMODE_SYNCHRON ); if ( bDeleteCache ) DELETEZ( pCache ); SfxPoolItem *pVoid = new SfxVoidItem( nId ); diff --git a/sfx2/source/control/statcach.cxx b/sfx2/source/control/statcach.cxx index 4770c51fd9..795fb5e9be 100644 --- a/sfx2/source/control/statcach.cxx +++ b/sfx2/source/control/statcach.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: statcach.cxx,v $ - * $Revision: 1.36 $ + * $Revision: 1.36.180.1 $ * * This file is part of OpenOffice.org. * @@ -44,6 +44,7 @@ #include <com/sun/star/frame/XFrame.hpp> #include <com/sun/star/frame/FrameActionEvent.hpp> #include <com/sun/star/frame/FrameAction.hpp> +#include <com/sun/star/beans/PropertyValue.hpp> #include <cppuhelper/weak.hxx> #include <svtools/eitem.hxx> #include <svtools/intitem.hxx> @@ -55,6 +56,7 @@ #endif #include <sfx2/app.hxx> +#include <sfx2/appuno.hxx> #include "statcach.hxx" #include <sfx2/msg.hxx> #include <sfx2/ctrlitem.hxx> @@ -65,6 +67,7 @@ #include <sfx2/msgpool.hxx> #include <sfx2/viewfrm.hxx> +using namespace ::com::sun::star; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::util; @@ -191,13 +194,14 @@ const ::com::sun::star::frame::FeatureStateEvent& BindDispatch_Impl::GetStatus() return aStatus; } -void BindDispatch_Impl::Dispatch( sal_Bool bForceSynchron ) +void BindDispatch_Impl::Dispatch( uno::Sequence < beans::PropertyValue > aProps, sal_Bool bForceSynchron ) { if ( xDisp.is() && aStatus.IsEnabled ) { - ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue > aProps(1); - aProps.getArray()[0].Name = DEFINE_CONST_UNICODE("SynchronMode"); - aProps.getArray()[0].Value <<= bForceSynchron ; + sal_Int32 nLength = aProps.getLength(); + aProps.realloc(nLength+1); + aProps[nLength].Name = DEFINE_CONST_UNICODE("SynchronMode"); + aProps[nLength].Value <<= bForceSynchron ; xDisp->dispatch( aURL, aProps ); } } @@ -560,12 +564,17 @@ void SfxStateCache::DeleteFloatingWindows() return ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > (); } -void SfxStateCache::Dispatch( sal_Bool bForceSynchron ) +void SfxStateCache::Dispatch( const SfxItemSet* pSet, sal_Bool bForceSynchron ) { // protect pDispatch against destruction in the call ::com::sun::star::uno::Reference < ::com::sun::star::frame::XStatusListener > xKeepAlive( pDispatch ); if ( pDispatch ) - pDispatch->Dispatch( bForceSynchron ); + { + uno::Sequence < beans::PropertyValue > aArgs; + if (pSet) + TransformItems( nId, *pSet, aArgs ); + pDispatch->Dispatch( aArgs, bForceSynchron ); + } } |