summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_drag.h
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor_drag.h')
-rw-r--r--gtk2_ardour/editor_drag.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h
index c8308c6910..a6f5088d43 100644
--- a/gtk2_ardour/editor_drag.h
+++ b/gtk2_ardour/editor_drag.h
@@ -249,8 +249,11 @@ struct DraggingView
* or -1 if it is not visible.
*/
int time_axis_view;
- /** layer that this region is currently being displayed on */
- ARDOUR::layer_t layer;
+ /** Layer that this region is currently being displayed on. This is a double
+ rather than a layer_t as we use fractional layers during drags to allow the user
+ to indicate a new layer to put a region on.
+ */
+ double layer;
double initial_y; ///< the initial y position of the view before any reparenting
framepos_t initial_position; ///< initial position of the region
framepos_t initial_end; ///< initial end position of the region
@@ -295,7 +298,7 @@ public:
virtual void start_grab (GdkEvent *, Gdk::Cursor *);
virtual void motion (GdkEvent *, bool);
- virtual void finished (GdkEvent *, bool) = 0;
+ virtual void finished (GdkEvent *, bool);
virtual void aborted (bool);
/** @return true if the regions being `moved' came from somewhere on the canvas;
@@ -306,13 +309,13 @@ public:
protected:
double compute_x_delta (GdkEvent const *, ARDOUR::framecnt_t *);
- bool y_movement_allowed (int, ARDOUR::layer_t) const;
+ bool y_movement_allowed (int, double) const;
bool _brushing;
ARDOUR::framepos_t _last_frame_position; ///< last position of the thing being dragged
double _total_x_delta;
int _last_pointer_time_axis_view;
- ARDOUR::layer_t _last_pointer_layer;
+ double _last_pointer_layer;
};