fix operation of right-click on selected MIDI note to bring up the note editor. this...
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 2 May 2013 19:16:56 +0000 (15:16 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 2 May 2013 19:16:56 +0000 (15:16 -0400)
gtk2_ardour/canvas-note-event.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_mouse.cc
gtk2_ardour/public_editor.h

index 867e3cdf1c63d6e3f2cbe1cb378014e6e26b8c23..8932633bd9628e7c7dccc6fdb2043c31bcde6b55 100644 (file)
@@ -338,7 +338,7 @@ CanvasNoteEvent::on_event(GdkEvent* ev)
        case GDK_BUTTON_PRESS:
                set_mouse_fractions (ev);
                if (ev->button.button == 3 && Keyboard::no_modifiers_active (ev->button.state) && _selected) {
-                       show_channel_selector();
+                       _region.get_time_axis_view().editor().edit_notes (_region);
                        return true;
                }
                break;
index 2a58a09d41db3d50e20ba1c7b6e803a8626f5560..9293010d1162c2ba33bf7f6673cabd21819e941b 100644 (file)
@@ -1531,7 +1531,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void edit_tempo_marker (ArdourCanvas::Item*);
        void edit_meter_marker (ArdourCanvas::Item*);
        void edit_control_point (ArdourCanvas::Item*);
-       void edit_notes (std::set<Gnome::Canvas::CanvasNoteEvent *> const &);
+        void edit_notes (TimeAxisViewItem&);
 
        void marker_menu_edit ();
        void marker_menu_remove ();
index 2024d240e75218fea3d5c7e88404792ca73242af..1a4399854f626380e01c9b5e67c6ec07abee7d76 100644 (file)
@@ -978,10 +978,6 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
                                }
 
                                if (internal_editing ()) {
-                                       if (event->type == GDK_2BUTTON_PRESS && event->button.button == 1) {
-                                               Glib::RefPtr<Action> act = ActionManager::get_action (X_("MouseMode"), X_("toggle-internal-edit"));
-                                               act->activate ();
-                                       }
                                        break;
                                }
 
@@ -1460,14 +1456,6 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
                        edit_control_point (item);
                        break;
 
-               case NoteItem:
-               {
-                       ArdourCanvas::CanvasNoteEvent* e = dynamic_cast<ArdourCanvas::CanvasNoteEvent*> (item);
-                       assert (e);
-                       edit_notes (e->region_view().selection ());
-                       break;
-               }
-
                default:
                        break;
                }
@@ -2304,8 +2292,16 @@ Editor::edit_control_point (ArdourCanvas::Item* item)
 }
 
 void
-Editor::edit_notes (MidiRegionView::Selection const & s)
+Editor::edit_notes (TimeAxisViewItem& tavi)
 {
+       MidiRegionView* mrv = dynamic_cast<MidiRegionView*>(&tavi);
+
+       if (!mrv) {
+               return;
+       }
+
+       MidiRegionView::Selection const & s = mrv->selection();
+
        if (s.empty ()) {
                return;
        }
@@ -2317,7 +2313,6 @@ Editor::edit_notes (MidiRegionView::Selection const & s)
        d.run ();
 }
 
-
 void
 Editor::visible_order_range (int* low, int* high) const
 {
index 4593da29f47765b2b3196c7467f72e040bbe119c..a96e451a3172fe9de3ebf7187c07feda4cf02121 100644 (file)
@@ -291,6 +291,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible {
        virtual void add_to_idle_resize (TimeAxisView*, int32_t) = 0;
        virtual framecnt_t get_nudge_distance (framepos_t pos, framecnt_t& next) = 0;
        virtual Evoral::MusicalTime get_grid_type_as_beats (bool& success, framepos_t position) = 0;
+        virtual void edit_notes (TimeAxisViewItem&) = 0;
 
        virtual void queue_visual_videotimeline_update () = 0;
        virtual void toggle_ruler_video (bool) = 0;