summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-01-16 14:47:13 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-01-17 11:00:06 +0200
commit2796150fdcc340be6b3dba19fc9c5734c21e0e6e (patch)
treefb2c42538d92293486f6c2be1b7a32be49b99c18
parent2421d89e3b740d015fe1597f1c17118c12256897 (diff)
use rtl::Reference in DropTarget
instead of storing both a raw pointer and a uno::Reference Change-Id: Ia03e68ce7c0bec4b6e43e9ab32d8a918ea467f5b
-rw-r--r--vcl/unx/generic/dtrans/X11_droptarget.cxx16
-rw-r--r--vcl/unx/generic/dtrans/X11_selection.hxx7
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;