X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fdraginfo.h;h=cdc0b8e9c60ffd0dc77ec7e7a65581e0827b1866;hb=73a6b8ef25bb90ad6c66b25b17da5962a38291d2;hp=8b13961532096888568b44beb981caca02bd81fa;hpb=87726495c30f90554b5204b5385d17274a8fe93e;p=ardour.git diff --git a/gtk2_ardour/draginfo.h b/gtk2_ardour/draginfo.h index 8b13961532..cdc0b8e9c6 100644 --- a/gtk2_ardour/draginfo.h +++ b/gtk2_ardour/draginfo.h @@ -20,13 +20,15 @@ #ifndef __gtk2_ardour_drag_info_h_ #define __gtk2_ardour_drag_info_h_ +#include + #include #include #include "canvas.h" #include "editor_items.h" -#include +#include "ardour/types.h" namespace ARDOUR { class Location; @@ -39,19 +41,25 @@ struct DragInfo { ArdourCanvas::Item* item; ItemType item_type; void* data; - nframes_t last_frame_position; - int32_t pointer_frame_offset; - nframes_t grab_frame; - nframes_t last_pointer_frame; - nframes_t current_pointer_frame; + nframes64_t last_frame_position; + nframes64_t pointer_frame_offset; + nframes64_t grab_frame; + nframes64_t last_pointer_frame; + nframes64_t current_pointer_frame; + double original_x, original_y; double grab_x, grab_y; double cumulative_x_drag; double cumulative_y_drag; double current_pointer_x; double current_pointer_y; + double last_pointer_x; + double last_pointer_y; void (Editor::*motion_callback)(ArdourCanvas::Item*, GdkEvent*); void (Editor::*finished_callback)(ArdourCanvas::Item*, GdkEvent*); - TimeAxisView* last_trackview; + TimeAxisView* source_trackview; + ARDOUR::layer_t source_layer; + TimeAxisView* dest_trackview; + ARDOUR::layer_t dest_layer; bool x_constrained; bool y_constrained; bool copy; @@ -60,7 +68,9 @@ struct DragInfo { bool move_threshold_passed; bool want_move_threshold; bool brushing; - ARDOUR::Location* copied_location; + std::list copied_locations; + + void clear_copied_locations (); }; struct LineDragInfo {