13
0

Fix crash when dragging something from another task over the editor window.

git-svn-id: svn://localhost/ardour2/branches/3.0@7107 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2010-05-16 18:51:05 +00:00
parent 20724294c2
commit 50615cd17c
2 changed files with 9 additions and 1 deletions

View File

@ -69,6 +69,7 @@ bool
DnDTreeViewBase::on_drag_drop(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, guint time)
{
suggested_action = Gdk::DragAction (0);
drag_data.source = 0;
return TreeView::on_drag_drop (context, x, y, time);
}

View File

@ -70,6 +70,8 @@ class DnDTreeViewBase : public Gtk::TreeView
std::string object_type;
struct DragData {
DragData () : source (0) {}
Gtk::TreeView* source;
int data_column;
std::string object_type;
@ -134,11 +136,16 @@ class DnDTreeView : public DnDTreeViewBase
}
/**
* this can be called by the Treeview itself or by some other
* This can be called by the Treeview itself or by some other
* object that wants to get the list of dragged items.
*/
void get_object_drag_data (std::list<DataType>& l, Gtk::TreeView** source) {
if (drag_data.source == 0) {
return;
}
Glib::RefPtr<Gtk::TreeModel> model = drag_data.source->get_model();
DataType v;
Gtk::TreeSelection::ListHandle_Path selection = drag_data.source->get_selection()->get_selected_rows ();