summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-06-14 13:32:17 +0000
committerCarl Hetherington <carl@carlh.net>2009-06-14 13:32:17 +0000
commit478bab5380f586d3e022839a000a86c947a29f9c (patch)
treec1a1282bf08901ff41dd85099cd4ecf416b013ef /gtk2_ardour
parentb192de88b626eb87fb83d2e1172f78f2efda3dc4 (diff)
Prevent vertical autoscroll when dragging the playhead.
git-svn-id: svn://localhost/ardour2/branches/3.0@5186 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor.h2
-rw-r--r--gtk2_ardour/editor_canvas.cc4
-rw-r--r--gtk2_ardour/editor_drag.cc2
-rw-r--r--gtk2_ardour/editor_drag.h8
4 files changed, 12 insertions, 4 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index ea9581ebf9..24d43c1b44 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -1882,7 +1882,7 @@ public:
bool autoscroll_canvas ();
void start_canvas_autoscroll (int x, int y);
void stop_canvas_autoscroll ();
- void maybe_autoscroll (GdkEventMotion*);
+ void maybe_autoscroll (GdkEventMotion*, bool);
bool allow_vertical_scroll;
/* trimming */
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc
index fb8d489905..8ef127f0f9 100644
--- a/gtk2_ardour/editor_canvas.cc
+++ b/gtk2_ardour/editor_canvas.cc
@@ -540,7 +540,7 @@ Editor::drop_regions (const RefPtr<Gdk::DragContext>& context,
}
void
-Editor::maybe_autoscroll (GdkEventMotion* event)
+Editor::maybe_autoscroll (GdkEventMotion* event, bool allow_vert)
{
nframes64_t rightmost_frame = leftmost_frame + current_page_frames();
nframes64_t frame = _drag->current_pointer_frame();
@@ -548,7 +548,7 @@ Editor::maybe_autoscroll (GdkEventMotion* event)
autoscroll_y = 0;
autoscroll_x = 0;
- if (event->y < canvas_timebars_vsize) {
+ if (event->y < canvas_timebars_vsize && allow_vert) {
autoscroll_y = -1;
startit = true;
} else if (event->y > _canvas_height) {
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index b1243b8fa4..f094290136 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -207,7 +207,7 @@ Drag::motion_handler (GdkEvent* event, bool from_autoscroll)
if (event->motion.state & Gdk::BUTTON1_MASK || event->motion.state & Gdk::BUTTON2_MASK) {
if (!from_autoscroll) {
- _editor->maybe_autoscroll (&event->motion);
+ _editor->maybe_autoscroll (&event->motion, allow_vertical_autoscroll ());
}
motion (event, _had_movement != old_had_movement);
diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h
index a62dd7e2ec..651f2becdd 100644
--- a/gtk2_ardour/editor_drag.h
+++ b/gtk2_ardour/editor_drag.h
@@ -110,6 +110,10 @@ public:
return false;
}
+ virtual bool allow_vertical_autoscroll () const {
+ return true;
+ }
+
/** Called when a subclass should update the editor's selection following a drag */
virtual void update_selection () {}
@@ -343,6 +347,10 @@ public:
return true;
}
+ bool allow_vertical_autoscroll () const {
+ return false;
+ }
+
private:
EditorCursor* _cursor; ///< cursor being dragged
bool _stop; ///< true to stop the transport on starting the drag, otherwise false