summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2016-01-04 21:28:59 +0000
committerMichael Stahl <mstahl@redhat.com>2016-01-07 14:42:46 +0000
commit9a22f9f5fe528c7c0f45813a025b377f79c8372e (patch)
treebd498d62c2b9ea0764a543abc28df7f7e3e86c38 /include
parentd48370043b3759c79340c162048c5f2b4da394b9 (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.hxx15
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() ) ); }