From 1b657585572298d1a69a7b43e611f59b7e185df3 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 10 Feb 2008 18:16:25 +0000 Subject: Committed underlay support (from Audun). git-svn-id: svn://localhost/ardour2/branches/3.0@3037 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_canvas.cc | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'gtk2_ardour/editor_canvas.cc') diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc index aeff20f0bc..a2df1783aa 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -127,6 +127,7 @@ Editor::initialize_canvas () // Drag-N-Drop from the region list can generate this target target_table.push_back (TargetEntry ("regions")); + target_table.push_back (TargetEntry ("routes")); target_table.push_back (TargetEntry ("text/plain")); target_table.push_back (TargetEntry ("text/uri-list")); @@ -457,7 +458,11 @@ Editor::track_canvas_drag_data_received (const RefPtr& context if (data.get_target() == "regions") { drop_regions (context, x, y, data, info, time); - } else { + } + else if(data.get_target() == "routes") { + drop_routes (context, x, y, data, info, time); + } + else { drop_paths (context, x, y, data, info, time); } } @@ -540,6 +545,22 @@ Editor::drop_regions (const RefPtr& context, context->drag_finish (true, false, time); } +void +Editor::drop_routes (const Glib::RefPtr& context, + int x, int y, + const Gtk::SelectionData& data, + guint info, guint time) { + const SerializedObjectPointers >* sr = + reinterpret_cast > *> (data.get_data()); + + for (uint32_t i = 0; i < sr->cnt; ++i) { + boost::shared_ptr r = sr->data[i]; + insert_route_list_drag (r, x, y); + } + + context->drag_finish (true, false, time); +} + void Editor::maybe_autoscroll (GdkEvent* event) { -- cgit v1.2.3