Remove drag code from automation region view.
authorDavid Robillard <d@drobilla.net>
Wed, 14 Jan 2015 04:53:28 +0000 (23:53 -0500)
committerDavid Robillard <d@drobilla.net>
Wed, 14 Jan 2015 04:53:28 +0000 (23:53 -0500)
Let the editor handle it like (almost) everything else.

gtk2_ardour/automation_region_view.cc
gtk2_ardour/editor_mouse.cc

index d30cceccb76b0de39b6b3782d68ef46150ee6059..38a98aac7207fa54cdf869c6786c3c509d6b6b73 100644 (file)
@@ -132,30 +132,10 @@ AutomationRegionView::canvas_group_event (GdkEvent* ev)
 
        PublicEditor& e = trackview.editor ();
 
-       if (!trackview.editor().internal_editing()) {
-               // 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::MouseContent) {
-
-               /* XXX: icky dcast to Editor */
-               e.drags()->set (new EditorRubberbandSelectDrag (dynamic_cast<Editor*> (&e), group), ev);
-               e.drags()->start_grab (ev);
-               return true;
-
-       } else if (ev->type == GDK_MOTION_NOTIFY && e.drags()->active()) {
-               /* we probably shouldn't have to handle this here, but... */
-               e.drags()->motion_handler(ev, false);
-               return true;
-
-       } 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::MouseDraw &&
-                          e.current_mouse_mode() != Editing::MouseContent) {
-                       return RegionView::canvas_group_event (ev);
-               }
+       if (trackview.editor().internal_editing() &&
+           ev->type == GDK_BUTTON_RELEASE &&
+           e.current_mouse_mode() == Editing::MouseDraw &&
+           !e.drags()->active()) {
 
                double x = ev->button.x;
                double y = ev->button.y;
index 8ec03d778dcf34f1aa426f392012d8f94a1792c7..abb8cc56a8add7bfe8d64bf9dcf5cb625b9a483d 100644 (file)
@@ -750,6 +750,14 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
                        return true;
                        break;
 
+               case RegionItem:
+                       if (dynamic_cast<AutomationRegionView*>(clicked_regionview)) {
+                               /* rubberband drag to select automation points */
+                               _drags->set (new EditorRubberbandSelectDrag (this, item), event);
+                               return true;
+                       }
+                       break;
+
                default:
                        break;
                }