sfx2/source/inc/eventsupplier.hxx | 14 +++++++------- sfx2/source/notify/eventsupplier.cxx | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-)
New commits: commit 7f34ac5201ffec31bd336cf9fb1f8d2554bc6f72 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Tue Nov 30 00:08:57 2021 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Thu Dec 9 09:51:17 2021 +0100 tdf#117280: derive SfxEvents_Impl from css::document::XDocumentEventListener It abused XEventListener, and created a DocumentEvent object from the incomplete data passed to notifyEvent in EventObject. That way, the data initially created for the document event (in Supplement) was lost on the way. Change-Id: I409611482ce2323a3192c68f3525f450a9395815 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126090 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> (cherry picked from commit 28eef82cb16faef0b8ddc9912560efb779baa9f9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126093 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sfx2/source/inc/eventsupplier.hxx b/sfx2/source/inc/eventsupplier.hxx index af3d5bf357d5..0bbd11ef1773 100644 --- a/sfx2/source/inc/eventsupplier.hxx +++ b/sfx2/source/inc/eventsupplier.hxx @@ -24,8 +24,8 @@ #include <com/sun/star/document/DocumentEvent.hpp> #include <com/sun/star/container/XNameReplace.hpp> -#include <com/sun/star/document/XEventListener.hpp> -#include <com/sun/star/document/XEventBroadcaster.hpp> +#include <com/sun/star/document/XDocumentEventListener.hpp> +#include <com/sun/star/document/XDocumentEventBroadcaster.hpp> #include <com/sun/star/uno/Reference.hxx> #include <com/sun/star/uno/Type.hxx> #include <cppuhelper/implbase.hxx> @@ -40,17 +40,17 @@ class SfxObjectShell; class SvxMacro; -class SfxEvents_Impl final : public ::cppu::WeakImplHelper< css::container::XNameReplace, css::document::XEventListener > +class SfxEvents_Impl final : public ::cppu::WeakImplHelper< css::container::XNameReplace, css::document::XDocumentEventListener > { css::uno::Sequence< OUString > maEventNames; std::vector< css::uno::Any > maEventData; - css::uno::Reference< css::document::XEventBroadcaster > mxBroadcaster; + css::uno::Reference< css::document::XDocumentEventBroadcaster > mxBroadcaster; ::osl::Mutex maMutex; SfxObjectShell *mpObjShell; public: SfxEvents_Impl( SfxObjectShell* pShell, - css::uno::Reference< css::document::XEventBroadcaster > const & xBroadcaster ); + css::uno::Reference< css::document::XDocumentEventBroadcaster > const & xBroadcaster ); virtual ~SfxEvents_Impl() override; // --- XNameReplace --- @@ -65,8 +65,8 @@ public: virtual css::uno::Type SAL_CALL getElementType() override; virtual sal_Bool SAL_CALL hasElements() override; - // --- ::document::XEventListener --- - virtual void SAL_CALL notifyEvent( const css::document::EventObject& aEvent ) override; + // --- ::document::XDocumentEventListener --- + virtual void SAL_CALL documentEventOccured(const css::document::DocumentEvent& aEvent) override; // --- ::lang::XEventListener --- virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; diff --git a/sfx2/source/notify/eventsupplier.cxx b/sfx2/source/notify/eventsupplier.cxx index 00135b2a0654..08699ca70185 100644 --- a/sfx2/source/notify/eventsupplier.cxx +++ b/sfx2/source/notify/eventsupplier.cxx @@ -280,7 +280,7 @@ void SfxEvents_Impl::Execute( uno::Any const & aEventData, const document::Docum // --- ::document::XEventListener --- -void SAL_CALL SfxEvents_Impl::notifyEvent( const document::EventObject& aEvent ) +void SAL_CALL SfxEvents_Impl::documentEventOccured( const document::DocumentEvent& aEvent ) { ::osl::ClearableMutexGuard aGuard( maMutex ); @@ -292,7 +292,7 @@ void SAL_CALL SfxEvents_Impl::notifyEvent( const document::EventObject& aEvent ) uno::Any aEventData = maEventData[ nIndex ]; aGuard.clear(); - Execute( aEventData, document::DocumentEvent(aEvent.Source, aEvent.EventName, nullptr, uno::Any()), mpObjShell ); + Execute( aEventData, aEvent, mpObjShell ); } @@ -304,14 +304,14 @@ void SAL_CALL SfxEvents_Impl::disposing( const lang::EventObject& /*Source*/ ) if ( mxBroadcaster.is() ) { - mxBroadcaster->removeEventListener( this ); + mxBroadcaster->removeDocumentEventListener( this ); mxBroadcaster = nullptr; } } SfxEvents_Impl::SfxEvents_Impl( SfxObjectShell* pShell, - uno::Reference< document::XEventBroadcaster > const & xBroadcaster ) + uno::Reference< document::XDocumentEventBroadcaster > const & xBroadcaster ) { // get the list of supported events and store it if ( pShell ) @@ -325,7 +325,7 @@ SfxEvents_Impl::SfxEvents_Impl( SfxObjectShell* pShell, mxBroadcaster = xBroadcaster; if ( mxBroadcaster.is() ) - mxBroadcaster->addEventListener( this ); + mxBroadcaster->addDocumentEventListener( this ); }