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