Use the edit position to decide what items to put in the region context menus, rather than the mouse position.
git-svn-id: svn://localhost/ardour2/branches/3.0@8028 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
1a9bd134d2
commit
82e1d1267d
|
@ -1478,10 +1478,10 @@ Editor::popup_fade_context_menu (int button, int32_t time, ArdourCanvas::Item* i
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::popup_track_context_menu (int button, int32_t time, ItemType item_type, bool with_selection, framepos_t frame)
|
Editor::popup_track_context_menu (int button, int32_t time, ItemType item_type, bool with_selection)
|
||||||
{
|
{
|
||||||
using namespace Menu_Helpers;
|
using namespace Menu_Helpers;
|
||||||
Menu* (Editor::*build_menu_function)(framepos_t);
|
Menu* (Editor::*build_menu_function)();
|
||||||
Menu *menu;
|
Menu *menu;
|
||||||
|
|
||||||
switch (item_type) {
|
switch (item_type) {
|
||||||
|
@ -1522,7 +1522,7 @@ Editor::popup_track_context_menu (int button, int32_t time, ItemType item_type,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
menu = (this->*build_menu_function)(frame);
|
menu = (this->*build_menu_function)();
|
||||||
menu->set_name ("ArdourContextMenu");
|
menu->set_name ("ArdourContextMenu");
|
||||||
|
|
||||||
/* now handle specific situations */
|
/* now handle specific situations */
|
||||||
|
@ -1605,7 +1605,7 @@ Editor::popup_track_context_menu (int button, int32_t time, ItemType item_type,
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu*
|
Menu*
|
||||||
Editor::build_track_context_menu (framepos_t)
|
Editor::build_track_context_menu ()
|
||||||
{
|
{
|
||||||
using namespace Menu_Helpers;
|
using namespace Menu_Helpers;
|
||||||
|
|
||||||
|
@ -1617,7 +1617,7 @@ Editor::build_track_context_menu (framepos_t)
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu*
|
Menu*
|
||||||
Editor::build_track_bus_context_menu (framepos_t)
|
Editor::build_track_bus_context_menu ()
|
||||||
{
|
{
|
||||||
using namespace Menu_Helpers;
|
using namespace Menu_Helpers;
|
||||||
|
|
||||||
|
@ -1629,7 +1629,7 @@ Editor::build_track_bus_context_menu (framepos_t)
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu*
|
Menu*
|
||||||
Editor::build_track_region_context_menu (framepos_t frame)
|
Editor::build_track_region_context_menu ()
|
||||||
{
|
{
|
||||||
using namespace Menu_Helpers;
|
using namespace Menu_Helpers;
|
||||||
MenuList& edit_items = track_region_context_menu.items();
|
MenuList& edit_items = track_region_context_menu.items();
|
||||||
|
@ -1651,7 +1651,7 @@ Editor::build_track_region_context_menu (framepos_t frame)
|
||||||
mode and so offering region context is somewhat confusing.
|
mode and so offering region context is somewhat confusing.
|
||||||
*/
|
*/
|
||||||
if ((tr = rtv->track()) && ((pl = tr->playlist())) && !internal_editing()) {
|
if ((tr = rtv->track()) && ((pl = tr->playlist())) && !internal_editing()) {
|
||||||
framepos_t framepos = (framepos_t) floor ((double)frame * tr->speed());
|
framepos_t const framepos = (framepos_t) floor ((double) get_preferred_edit_position() * tr->speed());
|
||||||
uint32_t regions_at = pl->count_regions_at (framepos);
|
uint32_t regions_at = pl->count_regions_at (framepos);
|
||||||
add_region_context_items (edit_items, regions_at > 1);
|
add_region_context_items (edit_items, regions_at > 1);
|
||||||
}
|
}
|
||||||
|
@ -1663,7 +1663,7 @@ Editor::build_track_region_context_menu (framepos_t frame)
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu*
|
Menu*
|
||||||
Editor::build_track_crossfade_context_menu (framepos_t frame)
|
Editor::build_track_crossfade_context_menu ()
|
||||||
{
|
{
|
||||||
using namespace Menu_Helpers;
|
using namespace Menu_Helpers;
|
||||||
MenuList& edit_items = track_crossfade_context_menu.items();
|
MenuList& edit_items = track_crossfade_context_menu.items();
|
||||||
|
@ -1680,7 +1680,7 @@ Editor::build_track_crossfade_context_menu (framepos_t frame)
|
||||||
|
|
||||||
AudioPlaylist::Crossfades xfades;
|
AudioPlaylist::Crossfades xfades;
|
||||||
|
|
||||||
apl->crossfades_at (frame, xfades);
|
apl->crossfades_at (get_preferred_edit_position (), xfades);
|
||||||
|
|
||||||
bool many = xfades.size() > 1;
|
bool many = xfades.size() > 1;
|
||||||
|
|
||||||
|
@ -1688,7 +1688,7 @@ Editor::build_track_crossfade_context_menu (framepos_t frame)
|
||||||
add_crossfade_context_items (atv->audio_view(), (*i), edit_items, many);
|
add_crossfade_context_items (atv->audio_view(), (*i), edit_items, many);
|
||||||
}
|
}
|
||||||
|
|
||||||
framepos_t framepos = (framepos_t) floor ((double)frame * tr->speed());
|
framepos_t framepos = (framepos_t) floor ((double) get_preferred_edit_position() * tr->speed());
|
||||||
uint32_t regions_at = pl->count_regions_at (framepos);
|
uint32_t regions_at = pl->count_regions_at (framepos);
|
||||||
add_region_context_items (edit_items, regions_at > 1);
|
add_region_context_items (edit_items, regions_at > 1);
|
||||||
}
|
}
|
||||||
|
@ -1736,7 +1736,7 @@ Editor::analyze_range_selection()
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu*
|
Menu*
|
||||||
Editor::build_track_selection_context_menu (framepos_t)
|
Editor::build_track_selection_context_menu ()
|
||||||
{
|
{
|
||||||
using namespace Menu_Helpers;
|
using namespace Menu_Helpers;
|
||||||
MenuList& edit_items = track_selection_context_menu.items();
|
MenuList& edit_items = track_selection_context_menu.items();
|
||||||
|
|
|
@ -691,12 +691,12 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||||
Gtk::Menu * track_edit_playlist_submenu;
|
Gtk::Menu * track_edit_playlist_submenu;
|
||||||
Gtk::Menu * track_selection_edit_playlist_submenu;
|
Gtk::Menu * track_selection_edit_playlist_submenu;
|
||||||
|
|
||||||
void popup_track_context_menu (int, int, ItemType, bool, framepos_t);
|
void popup_track_context_menu (int, int, ItemType, bool);
|
||||||
Gtk::Menu* build_track_context_menu (framepos_t);
|
Gtk::Menu* build_track_context_menu ();
|
||||||
Gtk::Menu* build_track_bus_context_menu (framepos_t);
|
Gtk::Menu* build_track_bus_context_menu ();
|
||||||
Gtk::Menu* build_track_region_context_menu (framepos_t frame);
|
Gtk::Menu* build_track_region_context_menu ();
|
||||||
Gtk::Menu* build_track_crossfade_context_menu (framepos_t);
|
Gtk::Menu* build_track_crossfade_context_menu ();
|
||||||
Gtk::Menu* build_track_selection_context_menu (framepos_t);
|
Gtk::Menu* build_track_selection_context_menu ();
|
||||||
void add_dstream_context_items (Gtk::Menu_Helpers::MenuList&);
|
void add_dstream_context_items (Gtk::Menu_Helpers::MenuList&);
|
||||||
void add_bus_context_items (Gtk::Menu_Helpers::MenuList&);
|
void add_bus_context_items (Gtk::Menu_Helpers::MenuList&);
|
||||||
void add_region_context_items (Gtk::Menu_Helpers::MenuList&, bool);
|
void add_region_context_items (Gtk::Menu_Helpers::MenuList&, bool);
|
||||||
|
|
|
@ -1249,7 +1249,7 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case StreamItem:
|
case StreamItem:
|
||||||
popup_track_context_menu (1, event->button.time, item_type, false, where);
|
popup_track_context_menu (1, event->button.time, item_type, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RegionItem:
|
case RegionItem:
|
||||||
|
@ -1257,15 +1257,15 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||||
case LeftFrameHandle:
|
case LeftFrameHandle:
|
||||||
case RightFrameHandle:
|
case RightFrameHandle:
|
||||||
case RegionViewName:
|
case RegionViewName:
|
||||||
popup_track_context_menu (1, event->button.time, item_type, false, where);
|
popup_track_context_menu (1, event->button.time, item_type, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SelectionItem:
|
case SelectionItem:
|
||||||
popup_track_context_menu (1, event->button.time, item_type, true, where);
|
popup_track_context_menu (1, event->button.time, item_type, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AutomationTrackItem:
|
case AutomationTrackItem:
|
||||||
popup_track_context_menu (1, event->button.time, item_type, false, where);
|
popup_track_context_menu (1, event->button.time, item_type, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MarkerBarItem:
|
case MarkerBarItem:
|
||||||
|
@ -1290,7 +1290,7 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CrossfadeViewItem:
|
case CrossfadeViewItem:
|
||||||
popup_track_context_menu (1, event->button.time, item_type, false, where);
|
popup_track_context_menu (1, event->button.time, item_type, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef WITH_CMT
|
#ifdef WITH_CMT
|
||||||
|
|
Loading…
Reference in New Issue
Block a user