From f6b5444ebf2e85d28da5293c582babc343ff4d31 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 25 Nov 2008 00:50:28 +0000 Subject: [PATCH] the OTHER PART of fix up region-list => canvas drags, given changes in DnDTreeView git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4247 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/gtkmm2ext/gtkmm2ext/dndtreeview.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libs/gtkmm2ext/gtkmm2ext/dndtreeview.h b/libs/gtkmm2ext/gtkmm2ext/dndtreeview.h index 08d54bb139..d045a9508f 100644 --- a/libs/gtkmm2ext/gtkmm2ext/dndtreeview.h +++ b/libs/gtkmm2ext/gtkmm2ext/dndtreeview.h @@ -130,21 +130,29 @@ class DnDTreeView : public DnDTreeViewBase } } - private: + /** + * this can be called by the Treeview itself or by some other + * object that wants to get the list of dragged items. + */ - void end_object_drag () { + void get_object_drag_data (std::list& l) { Glib::RefPtr model = drag_data.source->get_model(); DataType v; - std::list l; Gtk::TreeSelection::ListHandle_Path selection = drag_data.source->get_selection()->get_selected_rows (); for (Gtk::TreeSelection::ListHandle_Path::iterator x = selection.begin(); x != selection.end(); ++x) { model->get_iter (*x)->get_value (drag_data.data_column, v); l.push_back (v); } + } + private: + void end_object_drag () { + std::list l; + get_object_drag_data (l); signal_drop (l); } + }; } // namespace