remove/delete current mixer strip when session is deleted
[ardour.git] / gtk2_ardour / editor_canvas.cc
index e6efc7ad1578ee4ec73714a93f4f5e2519a60fee..c5cb652e66918c16d9a76fd7c0583677abd7a796 100644 (file)
@@ -544,15 +544,14 @@ Editor::drop_regions (const RefPtr<Gdk::DragContext>& context,
                      const SelectionData& data,
                      guint info, guint time)
 {
-       const SerializedObjectPointers<boost::shared_ptr<Region> >* sr = 
-               reinterpret_cast<const SerializedObjectPointers<boost::shared_ptr<Region> > *> (data.get_data());
+       std::list<boost::shared_ptr<Region> > regions;
+       region_list_display.get_object_drag_data (regions);
 
-       for (uint32_t i = 0; i < sr->cnt; ++i) {
+       for (list<boost::shared_ptr<Region> >::iterator r = regions.begin(); r != regions.end(); ++r) {
 
-               boost::shared_ptr<Region> r = sr->data[i];
                boost::shared_ptr<AudioRegion> ar;
 
-               if ((ar = boost::dynamic_pointer_cast<AudioRegion>(r)) != 0) {
+               if ((ar = boost::dynamic_pointer_cast<AudioRegion>(*r)) != 0) {
                        insert_region_list_drag (ar, x, y);
                }
        }
@@ -839,6 +838,17 @@ Editor::scroll_canvas_horizontally ()
                canvas_scroll_to (time_origin);
        }
 
+       /* horizontal scrolling only */
+       double x1, x2, y1, y2, x_delta;
+
+       _master_group->get_bounds(x1, y1, x2, y2);
+       x_delta = x1 + horizontal_adjustment.get_value();
+
+       _master_group->move (-x_delta, 0);
+       timebar_group->move (-x_delta, 0);
+       time_line_group->move (-x_delta, 0);
+       cursor_group->move (-x_delta, 0);
+
        update_fixed_rulers ();
        redisplay_tempo (true);
 
@@ -850,16 +860,7 @@ Editor::scroll_canvas_horizontally ()
                }
        }
 #endif
-       /* horizontal scrolling only */
-       double x1, x2, y1, y2, x_delta;
-
-       _master_group->get_bounds(x1, y1, x2, y2);
-       x_delta = x1 + horizontal_adjustment.get_value();
 
-       _master_group->move (-x_delta, 0);
-       timebar_group->move (-x_delta, 0);
-       time_line_group->move (-x_delta, 0);
-       cursor_group->move (-x_delta, 0);
 }
 
 void