Open route group dialogue on Ctrl-right-click rather than Ctrl-left-click on a group tab to be more consistent with the rest of Ardour (#4466).
git-svn-id: svn://localhost/ardour2/branches/3.0@10638 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
f12701fda2
commit
e1905ccbf6
|
@ -134,11 +134,17 @@ GroupTabs::on_button_press_event (GdkEventButton* ev)
|
||||||
} else if (ev->button == 3) {
|
} else if (ev->button == 3) {
|
||||||
|
|
||||||
RouteGroup* g = t ? t->group : 0;
|
RouteGroup* g = t ? t->group : 0;
|
||||||
Menu* m = get_menu (g);
|
|
||||||
if (m) {
|
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier) && g) {
|
||||||
m->popup (ev->button, ev->time);
|
/* edit */
|
||||||
|
RouteGroupDialog d (g, false);
|
||||||
|
d.do_run ();
|
||||||
|
} else {
|
||||||
|
Menu* m = get_menu (g);
|
||||||
|
if (m) {
|
||||||
|
m->popup (ev->button, ev->time);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -179,29 +185,18 @@ GroupTabs::on_button_release_event (GdkEventButton* ev)
|
||||||
if (_dragging == 0) {
|
if (_dragging == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_drag_moved) {
|
if (!_drag_moved) {
|
||||||
|
|
||||||
if (_dragging->group) {
|
if (_dragging->group) {
|
||||||
|
/* toggle active state */
|
||||||
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
|
_dragging->group->set_active (!_dragging->group->is_active (), this);
|
||||||
|
|
||||||
/* edit */
|
|
||||||
RouteGroupDialog d (_dragging->group, false);
|
|
||||||
d.do_run ();
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
/* toggle active state */
|
|
||||||
_dragging->group->set_active (!_dragging->group->is_active (), this);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* finish drag */
|
/* finish drag */
|
||||||
RouteList routes = routes_for_tab (_dragging);
|
RouteList routes = routes_for_tab (_dragging);
|
||||||
|
|
||||||
if (!routes.empty()) {
|
if (!routes.empty()) {
|
||||||
if (_dragging_new_tab) {
|
if (_dragging_new_tab) {
|
||||||
RouteGroup* g = create_and_add_group ();
|
RouteGroup* g = create_and_add_group ();
|
||||||
|
@ -213,13 +208,13 @@ GroupTabs::on_button_release_event (GdkEventButton* ev)
|
||||||
} else {
|
} else {
|
||||||
boost::shared_ptr<RouteList> r = _session->get_routes ();
|
boost::shared_ptr<RouteList> r = _session->get_routes ();
|
||||||
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
|
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
|
||||||
|
|
||||||
bool const was_in_tab = find (
|
bool const was_in_tab = find (
|
||||||
_initial_dragging_routes.begin(), _initial_dragging_routes.end(), *i
|
_initial_dragging_routes.begin(), _initial_dragging_routes.end(), *i
|
||||||
) != _initial_dragging_routes.end ();
|
) != _initial_dragging_routes.end ();
|
||||||
|
|
||||||
bool const now_in_tab = find (routes.begin(), routes.end(), *i) != routes.end();
|
bool const now_in_tab = find (routes.begin(), routes.end(), *i) != routes.end();
|
||||||
|
|
||||||
if (was_in_tab && !now_in_tab) {
|
if (was_in_tab && !now_in_tab) {
|
||||||
_dragging->group->remove (*i);
|
_dragging->group->remove (*i);
|
||||||
} else if (!was_in_tab && now_in_tab) {
|
} else if (!was_in_tab && now_in_tab) {
|
||||||
|
@ -228,11 +223,11 @@ GroupTabs::on_button_release_event (GdkEventButton* ev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
set_dirty ();
|
set_dirty ();
|
||||||
queue_draw ();
|
queue_draw ();
|
||||||
}
|
}
|
||||||
|
|
||||||
_dragging = 0;
|
_dragging = 0;
|
||||||
_initial_dragging_routes.clear ();
|
_initial_dragging_routes.clear ();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user