fix operation of right-click on selected MIDI note to bring up the note editor. this is still not really right long term, but it is better than displaying the channel selector

This commit is contained in:
Paul Davis 2013-05-02 15:16:56 -04:00
parent 81485faa83
commit d14f43ccf2
4 changed files with 12 additions and 16 deletions

View File

@ -338,7 +338,7 @@ CanvasNoteEvent::on_event(GdkEvent* ev)
case GDK_BUTTON_PRESS: case GDK_BUTTON_PRESS:
set_mouse_fractions (ev); set_mouse_fractions (ev);
if (ev->button.button == 3 && Keyboard::no_modifiers_active (ev->button.state) && _selected) { 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; return true;
} }
break; break;

View File

@ -1531,7 +1531,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void edit_tempo_marker (ArdourCanvas::Item*); void edit_tempo_marker (ArdourCanvas::Item*);
void edit_meter_marker (ArdourCanvas::Item*); void edit_meter_marker (ArdourCanvas::Item*);
void edit_control_point (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_edit ();
void marker_menu_remove (); void marker_menu_remove ();

View File

@ -978,10 +978,6 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
} }
if (internal_editing ()) { 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; break;
} }
@ -1460,14 +1456,6 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
edit_control_point (item); edit_control_point (item);
break; break;
case NoteItem:
{
ArdourCanvas::CanvasNoteEvent* e = dynamic_cast<ArdourCanvas::CanvasNoteEvent*> (item);
assert (e);
edit_notes (e->region_view().selection ());
break;
}
default: default:
break; break;
} }
@ -2304,8 +2292,16 @@ Editor::edit_control_point (ArdourCanvas::Item* item)
} }
void 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 ()) { if (s.empty ()) {
return; return;
} }
@ -2317,7 +2313,6 @@ Editor::edit_notes (MidiRegionView::Selection const & s)
d.run (); d.run ();
} }
void void
Editor::visible_order_range (int* low, int* high) const Editor::visible_order_range (int* low, int* high) const
{ {

View File

@ -291,6 +291,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible {
virtual void add_to_idle_resize (TimeAxisView*, int32_t) = 0; virtual void add_to_idle_resize (TimeAxisView*, int32_t) = 0;
virtual framecnt_t get_nudge_distance (framepos_t pos, framecnt_t& next) = 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 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 queue_visual_videotimeline_update () = 0;
virtual void toggle_ruler_video (bool) = 0; virtual void toggle_ruler_video (bool) = 0;