summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_summary.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-08-20 19:12:24 +0000
committerCarl Hetherington <carl@carlh.net>2009-08-20 19:12:24 +0000
commit76594112af08724c8af6d01d9fcbdbd6478c869c (patch)
treeaae11619b37611076e782f175ed4a49e73b6af7a /gtk2_ardour/editor_summary.cc
parent9153ef32975efb86cc1609d72a0ea1ebd149faab (diff)
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
Diffstat (limited to 'gtk2_ardour/editor_summary.cc')
-rw-r--r--gtk2_ardour/editor_summary.cc83
1 files changed, 37 insertions, 46 deletions
diff --git a/gtk2_ardour/editor_summary.cc b/gtk2_ardour/editor_summary.cc
index 5f3791ba47..7cb2faf9fe 100644
--- a/gtk2_ardour/editor_summary.cc
+++ b/gtk2_ardour/editor_summary.cc
@@ -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;
}
}