diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-11-07 16:36:10 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-11-07 16:36:10 +0000 |
commit | 8018908f39c3dd3d8e4911d366d17e8a571d1b5b (patch) | |
tree | 231aeeb900881a709dfc6a57f369dab6daaee0bb /gtk2_ardour/editor_rulers.cc | |
parent | 5b6524bed4fb57a4a2061c5aa3471e2172fc20ea (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.cc | 29 |
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) { |