Resolves: tdf#132477 Fix Writer Navigator drag and drop crash

Dont allow drag and drop when tree root is selected

Change-Id: Ia5b8c07861c4ac9b0e4632ccc09e1cd9211e2a8e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92962
Tested-by: Jenkins
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx
index d940f90..87ae08c 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -927,6 +927,14 @@ IMPL_LINK(SwContentTree, DragBeginHdl, bool&, rUnsetDragIcon, bool)

    bool bDisallow = true;

    // don't allow if tree root is selected
    std::unique_ptr<weld::TreeIter> xEntry(m_xTreeView->make_iterator());
    bool bEntry = m_xTreeView->get_selected(xEntry.get());
    if (!bEntry || lcl_IsContentType(*xEntry, *m_xTreeView))
    {
        return true; // disallow
    }

    rtl::Reference<TransferDataContainer> xContainer = new TransferDataContainer;
    sal_Int8 nDragMode = DND_ACTION_COPYMOVE | DND_ACTION_LINK;

@@ -940,10 +948,6 @@ IMPL_LINK(SwContentTree, DragBeginHdl, bool&, rUnsetDragIcon, bool)

        std::unique_ptr<weld::TreeIter> xScratch(m_xTreeView->make_iterator());

        std::unique_ptr<weld::TreeIter> xEntry(m_xTreeView->make_iterator());
        bool bEntry = m_xTreeView->get_selected(xEntry.get());
        if (!bEntry)
            return true; // disallow
        // Find first selected of continuous siblings
        while (true)
        {