include/vcl/treelistbox.hxx | 2 ++ include/vcl/weld.hxx | 1 + sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx | 1 + vcl/source/app/salvtables.cxx | 5 +++++ vcl/source/treelist/treelistbox.cxx | 12 ++++++++++-- vcl/unx/gtk3/gtk3gtkinst.cxx | 5 +++++ 6 files changed, 24 insertions(+), 2 deletions(-)
New commits: commit 251fbdc642b9c27e9ad467322fb6d4e5c8f76a4c Author: Caolán McNamara <[email protected]> AuthorDate: Mon Apr 6 14:19:32 2020 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Mon Apr 6 16:42:47 2020 +0200 unset dest dnd row highlight after drop Change-Id: Id9b70b247351a5c12b6540c828e2c34f9fb31c11 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91750 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/include/vcl/treelistbox.hxx b/include/vcl/treelistbox.hxx index e56fd1081fb2..cce02a9286b6 100644 --- a/include/vcl/treelistbox.hxx +++ b/include/vcl/treelistbox.hxx @@ -278,6 +278,8 @@ private: VCL_DLLPRIVATE void DrawCustomEntry(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect, const SvTreeListEntry& rEntry); VCL_DLLPRIVATE Size MeasureCustomEntry(vcl::RenderContext& rRenderContext, const SvTreeListEntry& rEntry); + void UnsetDropTarget(); + protected: bool CheckDragAndDropMode( SvTreeListBox const * pSource, sal_Int8 ); diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index e8536e4a5660..3f3689fccc61 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -1096,6 +1096,7 @@ public: // for dnd virtual bool get_dest_row_at_pos(const Point& rPos, weld::TreeIter* pResult) = 0; + virtual void unset_drag_dest_row() = 0; virtual tools::Rectangle get_row_area(const weld::TreeIter& rIter) const = 0; // for dragging and dropping between TreeViews, return the active source virtual TreeView* get_drag_source() const = 0; diff --git a/sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx b/sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx index 2ae02800c032..c80b64b4a5c6 100644 --- a/sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx +++ b/sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx @@ -58,6 +58,7 @@ sal_Int8 ScPivotLayoutTreeDropTarget::ExecuteDrop( const ExecuteDropEvent& rEvt if (rWidget.get_dest_row_at_pos(rEvt.maPosPixel, xTarget.get())) nTargetPos = rWidget.get_iter_index_in_parent(*xTarget); m_rTreeView.InsertEntryForSourceTarget(*pSource, nTargetPos); + rWidget.unset_drag_dest_row(); return DND_ACTION_NONE; } diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 1ae61d3ee21a..14dab888e080 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -4564,6 +4564,11 @@ public: return pTarget != nullptr; } + virtual void unset_drag_dest_row() override + { + m_xTreeView->UnsetDropTarget(); + } + virtual tools::Rectangle get_row_area(const weld::TreeIter& rIter) const override { return m_xTreeView->GetBoundingRect(static_cast<const SalInstanceTreeIter&>(rIter).iter); diff --git a/vcl/source/treelist/treelistbox.cxx b/vcl/source/treelist/treelistbox.cxx index f54e184356d4..274b61b906b5 100644 --- a/vcl/source/treelist/treelistbox.cxx +++ b/vcl/source/treelist/treelistbox.cxx @@ -1225,13 +1225,21 @@ nAction } #endif - ImplShowTargetEmphasis( pTargetEntry, false ); + UnsetDropTarget(); g_pDDSource = nullptr; g_pDDTarget = nullptr; - pTargetEntry = nullptr; nDragDropMode = nOldDragMode; } +void SvTreeListBox::UnsetDropTarget() +{ + if (pTargetEntry) + { + ImplShowTargetEmphasis(pTargetEntry, false); + pTargetEntry = nullptr; + } +} + DragDropMode SvTreeListBox::NotifyStartDrag( TransferDataContainer&, SvTreeListEntry* ) { return DragDropMode(0xffff); diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 63f5e710f817..8b644d22d1c5 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -10970,6 +10970,11 @@ public: return ret; } + virtual void unset_drag_dest_row() override + { + gtk_tree_view_set_drag_dest_row(m_pTreeView, nullptr, GTK_TREE_VIEW_DROP_BEFORE); + } + virtual tools::Rectangle get_row_area(const weld::TreeIter& rIter) const override { tools::Rectangle aRet; _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
