diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2016-01-04 21:28:59 +0000 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2016-01-07 14:42:46 +0000 |
commit | 9a22f9f5fe528c7c0f45813a025b377f79c8372e (patch) | |
tree | bd498d62c2b9ea0764a543abc28df7f7e3e86c38 /include | |
parent | d48370043b3759c79340c162048c5f2b4da394b9 (diff) |
tdf#94715 - ensure we remove ourselves from the same event source.
Seemingly event removal was not occuring; also clean up historic
duplication of UNO and C++ references using rtl::Reference.
Reviewed-on: https://gerrit.libreoffice.org/21088
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Conflicts:
include/toolkit/awt/vclxaccessiblecomponent.hxx
toolkit/source/awt/vclxaccessiblecomponent.cxx
Change-Id: I56dfb76501929886f70495804670f8c4f70e796b
Reviewed-on: https://gerrit.libreoffice.org/21110
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/toolkit/awt/vclxaccessiblecomponent.hxx | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/include/toolkit/awt/vclxaccessiblecomponent.hxx b/include/toolkit/awt/vclxaccessiblecomponent.hxx index 0fdc2a8f083f..f01183fa3d9b 100644 --- a/include/toolkit/awt/vclxaccessiblecomponent.hxx +++ b/include/toolkit/awt/vclxaccessiblecomponent.hxx @@ -63,15 +63,16 @@ class TOOLKIT_DLLPUBLIC VCLXAccessibleComponent ,public VCLXAccessibleComponent_BASE { private: - ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow> mxWindow; - VCLXWindow* mpVCLXindow; + rtl::Reference<VCLXWindow> m_xVCLXWindow; + VclPtr<vcl::Window> m_xEventSource; VCLExternalSolarLock* m_pSolarLock; -protected: - DECL_LINK( WindowEventListener, VclSimpleEvent* ); - DECL_LINK( WindowChildEventListener, VclSimpleEvent* ); + DECL_LINK( WindowEventListener, VclSimpleEvent* ); + DECL_LINK( WindowChildEventListener, VclSimpleEvent* ); + void DisconnectEvents(); +protected: virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ); virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent ); virtual void FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet ); @@ -80,10 +81,10 @@ protected: virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetChildAccessible( const VclWindowEvent& rVclWindowEvent ); public: - VCLXAccessibleComponent( VCLXWindow* pVCLXindow ); + VCLXAccessibleComponent( VCLXWindow* pVCLXWindow ); virtual ~VCLXAccessibleComponent(); - VCLXWindow* GetVCLXWindow() const { return mpVCLXindow; } + VCLXWindow* GetVCLXWindow() const; VclPtr<vcl::Window> GetWindow() const; template< class derived_type > VclPtr< derived_type > GetAs() const { return VclPtr< derived_type >( static_cast< derived_type * >( GetWindow().get() ) ); } |