summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_ops.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-01-16 23:49:33 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-01-16 23:49:33 +0000
commitfd62d7aa3c2df966e4284cad7dcee2acb57f4009 (patch)
tree355481f91a81c4153dc549d5edccf6a06005bd00 /gtk2_ardour/editor_ops.cc
parent73cc81a2f5a9065a82506092c4fa8877b9398c79 (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.cc35
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);