summaryrefslogtreecommitdiff
path: root/sfx2/source/control
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2009-02-19 08:26:23 +0000
committerOliver Bolte <obo@openoffice.org>2009-02-19 08:26:23 +0000
commit873cc2f9b7b226a36a786dbeab42551cc5a45d63 (patch)
tree1aae3e3a528d24a82f1f069fea54534ebcc5290f /sfx2/source/control
parentf15709f61c4cc92c4a4c055289552c2bc051c9fc (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.cxx11
-rw-r--r--sfx2/source/control/statcach.cxx23
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 );
+ }
}