fix meter color definitions (extra 0x in every one)
[ardour.git] / gtk2_ardour / automation_region_view.cc
index f7c2b6b642081fef1207a9b257be51ae53a7c8d1..61b0f1f39cbf0e78a8c95049c70c49a4a6e7e4e3 100644 (file)
@@ -105,6 +105,12 @@ AutomationRegionView::canvas_group_event (GdkEvent* ev)
 
        PublicEditor& e = trackview.editor ();
 
+       if (!trackview.editor().internal_editing() &&
+           e.current_mouse_mode() != Editing::MouseDraw) {
+               // not in internal edit mode, so just act like a normal region
+               return RegionView::canvas_group_event (ev);
+       }
+
        if (ev->type == GDK_BUTTON_PRESS && e.current_mouse_mode() == Editing::MouseObject) {
 
                /* XXX: icky dcast to Editor */
@@ -117,12 +123,12 @@ AutomationRegionView::canvas_group_event (GdkEvent* ev)
                e.drags()->motion_handler(ev, false);
                return true;
 
-       } else if (ev->type == GDK_BUTTON_RELEASE) {
+       } else if (ev->type == GDK_BUTTON_RELEASE && e.current_mouse_mode() == Editing::MouseDraw) {
                if (e.drags()->end_grab (ev)) {
                        return true;
-               } else if (e.current_mouse_mode() != Editing::MouseObject &&
-                          e.current_mouse_mode() == Editing::MouseDraw) {
-                       return false;
+               } else if (e.current_mouse_mode() != Editing::MouseDraw &&
+                          e.current_mouse_mode() != Editing::MouseObject) {
+                       return RegionView::canvas_group_event (ev);
                }
 
                double x = ev->button.x;
@@ -141,7 +147,7 @@ AutomationRegionView::canvas_group_event (GdkEvent* ev)
                return true;
        }
 
-       return false;
+       return RegionView::canvas_group_event (ev);
 }
 
 /** @param when Position in frames, where 0 is the start of the region.
@@ -204,9 +210,10 @@ AutomationRegionView::paste (framepos_t                                      pos
 
        /* add multi-paste offset if applicable */
        pos += view->editor().get_paste_offset(
-               pos, paste_count, _line->time_converter().to(slist->length()));
+               pos, paste_count, _source_relative_time_converter.to(slist->length()));
 
-       const double model_pos = _line->time_converter().from(pos - _line->time_converter().origin_b());
+       const double model_pos = _source_relative_time_converter.from(
+               pos - _source_relative_time_converter.origin_b());
 
        XMLNode& before = my_list->get_state();
        my_list->paste(*slist, model_pos, times);