tdf#149079 don't skip disposing DnDListener
even if there is no longer a DropTarget don't return early and
omit to inform listeners of the disposing
Change-Id: I6ce7fe1664049a9e0a88b549b1c8c94ec8072c1f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134322
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx
index d43e305..b2ce6d1 100644
--- a/editeng/source/editeng/impedit.cxx
+++ b/editeng/source/editeng/impedit.cxx
@@ -2693,18 +2693,18 @@ void ImpEditView::RemoveDragAndDropListeners()
else if (auto xWindow = GetWindow())
xDropTarget = xWindow->GetDropTarget();
if (!xDropTarget.is())
return;
css::uno::Reference<css::datatransfer::dnd::XDragGestureRecognizer> xDragGestureRecognizer(xDropTarget, uno::UNO_QUERY);
if (xDragGestureRecognizer.is())
if (xDropTarget.is())
{
uno::Reference<datatransfer::dnd::XDragGestureListener> xDGL(mxDnDListener, uno::UNO_QUERY);
xDragGestureRecognizer->removeDragGestureListener(xDGL);
}
css::uno::Reference<css::datatransfer::dnd::XDragGestureRecognizer> xDragGestureRecognizer(xDropTarget, uno::UNO_QUERY);
if (xDragGestureRecognizer.is())
{
uno::Reference<datatransfer::dnd::XDragGestureListener> xDGL(mxDnDListener, uno::UNO_QUERY);
xDragGestureRecognizer->removeDragGestureListener(xDGL);
}
uno::Reference<datatransfer::dnd::XDropTargetListener> xDTL(mxDnDListener, uno::UNO_QUERY);
xDropTarget->removeDropTargetListener(xDTL);
uno::Reference<datatransfer::dnd::XDropTargetListener> xDTL(mxDnDListener, uno::UNO_QUERY);
xDropTarget->removeDropTargetListener(xDTL);
}
if ( mxDnDListener.is() )
{