summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_rulers.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-11-07 16:36:10 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-11-07 16:36:10 +0000
commit8018908f39c3dd3d8e4911d366d17e8a571d1b5b (patch)
tree231aeeb900881a709dfc6a57f369dab6daaee0bb /gtk2_ardour/editor_rulers.cc
parent5b6524bed4fb57a4a2061c5aa3471e2172fc20ea (diff)
position playhead on button press in rulers, not button release
git-svn-id: svn://localhost/ardour2/trunk@1089 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_rulers.cc')
-rw-r--r--gtk2_ardour/editor_rulers.cc29
1 files changed, 28 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc
index ccd75a895c..6f908a2c54 100644
--- a/gtk2_ardour/editor_rulers.cc
+++ b/gtk2_ardour/editor_rulers.cc
@@ -138,6 +138,34 @@ Editor::ruler_button_press (GdkEventButton* ev)
ruler_grabbed_widget = grab_widget;
}
+ gint x,y;
+ Gdk::ModifierType state;
+
+ /* need to use the correct x,y, the event lies */
+ time_canvas_event_box.get_window()->get_pointer (x, y, state);
+
+ nframes_t where = leftmost_frame + pixel_to_frame (x);
+
+ switch (ev->button) {
+ case 1:
+ /* transport playhead */
+ snap_to (where);
+ session->request_locate (where);
+ break;
+
+ case 2:
+ /* edit cursor */
+ if (snap_type != Editing::SnapToEditCursor) {
+ snap_to (where);
+ }
+ edit_cursor->set_position (where);
+ edit_cursor_clock.set (where);
+ break;
+
+ default:
+ break;
+ }
+
return TRUE;
}
@@ -150,7 +178,6 @@ Editor::ruler_button_release (GdkEventButton* ev)
/* need to use the correct x,y, the event lies */
time_canvas_event_box.get_window()->get_pointer (x, y, state);
-
ruler_pressed_button = 0;
if (session == 0) {