diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-16 14:47:13 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-17 11:00:06 +0200 |
commit | 2796150fdcc340be6b3dba19fc9c5734c21e0e6e (patch) | |
tree | fb2c42538d92293486f6c2be1b7a32be49b99c18 /vcl | |
parent | 2421d89e3b740d015fe1597f1c17118c12256897 (diff) |
use rtl::Reference in DropTarget
instead of storing both a raw pointer and a uno::Reference
Change-Id: Ia03e68ce7c0bec4b6e43e9ab32d8a918ea467f5b
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/generic/dtrans/X11_droptarget.cxx | 16 | ||||
-rw-r--r-- | vcl/unx/generic/dtrans/X11_selection.hxx | 7 |
2 files changed, 10 insertions, 13 deletions
diff --git a/vcl/unx/generic/dtrans/X11_droptarget.cxx b/vcl/unx/generic/dtrans/X11_droptarget.cxx index b6892ebe35ec..3915d8e46762 100644 --- a/vcl/unx/generic/dtrans/X11_droptarget.cxx +++ b/vcl/unx/generic/dtrans/X11_droptarget.cxx @@ -35,15 +35,14 @@ DropTarget::DropTarget() : >( m_aMutex ), m_bActive( false ), m_nDefaultActions( 0 ), - m_aTargetWindow( None ), - m_pSelectionManager( nullptr ) + m_aTargetWindow( None ) { } DropTarget::~DropTarget() { - if( m_pSelectionManager ) - m_pSelectionManager->deregisterDropTarget( m_aTargetWindow ); + if( m_xSelectionManager.is() ) + m_xSelectionManager->deregisterDropTarget( m_aTargetWindow ); } void DropTarget::initialize( const Sequence< Any >& arguments ) throw( css::uno::Exception, std::exception ) @@ -59,15 +58,14 @@ void DropTarget::initialize( const Sequence< Any >& arguments ) throw( css::uno: aIdentifier >>= aDisplayName; } - m_pSelectionManager = &SelectionManager::get( aDisplayName ); - m_xSelectionManager = static_cast< XDragSource* >(m_pSelectionManager); - m_pSelectionManager->initialize( arguments ); + m_xSelectionManager = &SelectionManager::get( aDisplayName ); + m_xSelectionManager->initialize( arguments ); - if( m_pSelectionManager->getDisplay() ) // #136582# sanity check + if( m_xSelectionManager->getDisplay() ) // #136582# sanity check { sal_IntPtr aWindow = None; arguments.getConstArray()[1] >>= aWindow; - m_pSelectionManager->registerDropTarget( aWindow, this ); + m_xSelectionManager->registerDropTarget( aWindow, this ); m_aTargetWindow = aWindow; m_bActive = true; } diff --git a/vcl/unx/generic/dtrans/X11_selection.hxx b/vcl/unx/generic/dtrans/X11_selection.hxx index ec46b32d37fc..24de1bc580a6 100644 --- a/vcl/unx/generic/dtrans/X11_selection.hxx +++ b/vcl/unx/generic/dtrans/X11_selection.hxx @@ -31,8 +31,8 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/frame/XDesktop2.hpp> #include <osl/thread.h> - #include <osl/conditn.hxx> +#include <rtl/ref.hxx> #include <list> #include <unordered_map> @@ -75,11 +75,10 @@ namespace x11 { bool m_bActive; sal_Int8 m_nDefaultActions; ::Window m_aTargetWindow; - SelectionManager* m_pSelectionManager; - css::uno::Reference< css::datatransfer::dnd::XDragSource > + rtl::Reference<SelectionManager> m_xSelectionManager; ::std::list< css::uno::Reference< css::datatransfer::dnd::XDropTargetListener > > - m_aListeners; + m_aListeners; DropTarget(); virtual ~DropTarget() override; |