Don't locate summary view box on a click outside it, to be consistent with fader behaviour. Allow Ctrl-drag (zoom) from anywhere in the summary.

git-svn-id: svn://localhost/ardour2/branches/3.0@5557 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2009-08-20 19:12:24 +00:00
parent 9153ef3297
commit 76594112af

View File

@ -252,60 +252,51 @@ EditorSummary::on_button_press_event (GdkEventButton* ev)
{
if (ev->button == 1) {
if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) {
pair<double, double> xr;
pair<double, double> yr;
get_editor (&xr, &yr);
_start_editor_x = xr;
_start_editor_y = yr;
_start_mouse_x = ev->x;
_start_mouse_y = ev->y;
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
/* primary-modifier-click: start a zoom drag */
double const hx = (xr.first + xr.second) * 0.5;
_zoom_left = ev->x < hx;
_zoom_dragging = true;
_editor->_dragging_playhead = true;
/* In theory, we could support vertical dragging, which logically
might scale track heights in order to make the editor reflect
the dragged viewbox. However, having tried this:
a) it's hard to do
b) it's quite slow
c) it doesn't seem particularly useful, especially with the
limited height of the summary
So at the moment we don't support that...
*/
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) {
/* secondary-modifier-click: locate playhead */
if (_session) {
_session->request_locate (ev->x / _x_scale + _session->current_start_frame());
}
} else {
pair<double, double> xr;
pair<double, double> yr;
get_editor (&xr, &yr);
if (xr.first <= ev->x && ev->x <= xr.second && yr.first <= ev->y && ev->y <= yr.second) {
} else if (xr.first <= ev->x && ev->x <= xr.second && yr.first <= ev->y && ev->y <= yr.second) {
_start_editor_x = xr;
_start_editor_y = yr;
_start_mouse_x = ev->x;
_start_mouse_y = ev->y;
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
/* modifier-click inside the view rectangle: start a zoom drag */
double const hx = (xr.first + xr.second) * 0.5;
_zoom_left = ev->x < hx;
_zoom_dragging = true;
_editor->_dragging_playhead = true;
/* In theory, we could support vertical dragging, which logically
might scale track heights in order to make the editor reflect
the dragged viewbox. However, having tried this:
a) it's hard to do
b) it's quite slow
c) it doesn't seem particularly useful, especially with the
limited height of the summary
So at the moment we don't support that...
*/
} else {
/* ordinary click inside the view rectangle: start a move drag */
_move_dragging = true;
_moved = false;
_editor->_dragging_playhead = true;
}
} else {
/* ordinary click inside the view rectangle: start a move drag */
/* click outside the view rectangle: centre the view around the mouse click */
centre_on_click (ev);
}
_move_dragging = true;
_moved = false;
_editor->_dragging_playhead = true;
}
}