diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-16 23:49:33 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-16 23:49:33 +0000 |
commit | fd62d7aa3c2df966e4284cad7dcee2acb57f4009 (patch) | |
tree | 355481f91a81c4153dc549d5edccf6a06005bd00 /gtk2_ardour/editor_ops.cc | |
parent | 73cc81a2f5a9065a82506092c4fa8877b9398c79 (diff) |
ctrl-click on nudge buttons only moves playhead
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2926 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_ops.cc')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 46a2ac53d0..eba74abe60 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -61,6 +61,7 @@ #include "editing.h" #include "gtk-custom-hruler.h" #include "gui_thread.h" +#include "keyboard.h" #include "i18n.h" @@ -327,16 +328,38 @@ Editor::extend_selection_to_start_of_region (bool previous) commit_reversible_command (); } +bool +Editor::nudge_forward_release (GdkEventButton* ev) +{ + if (ev->state & Keyboard::PrimaryModifier) { + nudge_forward (false, true); + } else { + nudge_forward (false, false); + } + return false; +} + +bool +Editor::nudge_backward_release (GdkEventButton* ev) +{ + if (ev->state & Keyboard::PrimaryModifier) { + nudge_backward (false, true); + } else { + nudge_backward (false, false); + } + return false; +} + void -Editor::nudge_forward (bool next) +Editor::nudge_forward (bool next, bool force_playhead) { nframes_t distance; nframes_t next_distance; if (!session) return; - if (!selection->regions.empty()) { + if (!force_playhead && !selection->regions.empty()) { begin_reversible_command (_("nudge regions forward")); @@ -358,7 +381,7 @@ Editor::nudge_forward (bool next) commit_reversible_command (); - } else if (!selection->markers.empty()) { + } else if (!force_playhead && !selection->markers.empty()) { bool is_start; Location* loc = find_location_from_marker (selection->markers.front(), is_start); @@ -402,14 +425,14 @@ Editor::nudge_forward (bool next) } void -Editor::nudge_backward (bool next) +Editor::nudge_backward (bool next, bool force_playhead) { nframes_t distance; nframes_t next_distance; if (!session) return; - if (!selection->regions.empty()) { + if (!force_playhead && !selection->regions.empty()) { begin_reversible_command (_("nudge regions backward")); @@ -435,7 +458,7 @@ Editor::nudge_backward (bool next) commit_reversible_command (); - } else if (!selection->markers.empty()) { + } else if (!force_playhead && !selection->markers.empty()) { bool is_start; Location* loc = find_location_from_marker (selection->markers.front(), is_start); |