Commit Graph

152 Commits

Author SHA1 Message Date
nick_m
024adf3a4d Fix #6673 - another prematurely closed undo transaction.
- add_midi_region used to commit, resulting in
	  _region->set_position() adding a command when there was
	  no current transaction. The sub-bug here was that repeatedly
	  calling set_position() on the new region resulted in nonsensical
	  automation movement after the drag.
2015-11-14 03:14:23 +11:00
nick_m
e78a44d4e5 Markers use the selection change stack. 2015-10-25 05:26:44 +11:00
nick_m
c9864b71a0 ResizeNoteDrag selection click behaves as NoteDrag's does. 2015-10-24 01:19:00 +11:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
c315c6f140 Allow to override A/V-lock (when moving audio) 2015-09-08 02:51:58 +02:00
89b0817f83 fix "locked" + "locked to video" bug.
previously if some audio region was locked and locked to video,
the audio-region always stayed put and the video could only be
moved forward.

TODO: add an "unlock all" option.
2015-08-20 02:24:27 +02:00
e1f168de11 rename Marker class
Classes are in the global namespace.
OSX has a flat namespace and OSX32bit/Carbon has a Marker too.
2015-07-23 17:58:40 +02:00
46c8369328 merge fix 2015-07-16 16:13:24 -05:00
aefd089b88 make editor_drag.h fully self-contained as a header file (it was missing more than a dozen necessary fwd decls etc)
Conflicts:
	gtk2_ardour/editor_drag.h
2015-06-29 14:18:13 -04:00
nick_m
16109ebcc8 Rework last commit, clicking on an automation line no longer adds history.
- fixes a crash when clicking on automation lines repeatedly.
2015-06-18 06:27:37 +10:00
nick_m
639750f815 Don't add history by clicking a control point, fix control point selection.
- also make set_selected_control_point_from_click () return
	  something useful.
2015-06-18 03:48:39 +10:00
nick_m
b86c3f97b0 Fix bug where inserting notes in MouseContent mode disallowed resizing. 2015-05-24 04:04:37 +10:00
nick_m
88477ace25 Fix inverted logic of SnapOff with snap modifiers pressed.
- also clean up, rename and comment some previous hanges.
2015-05-23 03:09:48 +10:00
nick_m
37ee083931 Small cleanup 2015-05-22 04:48:34 +10:00
nick_m
7edf0e17bc Clean up a bit - should be a no-op 2015-05-22 03:09:29 +10:00
nick_m
ae0759ae88 Allow all drag -related modifiers to be set, re-instate "jump after trim"
- Copy modifier still doesn't save
	- Testers please edit the Extra section of ~/.ardourN/config to allow
	defaults to "take"
	- Note that the current defaults overlap.
	- warning - absolute snap modifier has no default and will be always
	"on" unless you set it!
2015-05-21 01:30:57 +10:00
nick_m
a0bd6975d2 Clean up drag modifiers.
Button 2 drag now is constrained to initial move axis, removing
	all modifiers from this op.
	Remove Jump after trim mode.
	TrimDrag now has:
		Primary for trim anchored to fade.
		Secondary for contents trim (as before)
		Primary & Tertiary for "non overlap" trim
	All drags have Tertiary for relative snap
2015-05-18 01:43:44 +10:00
nick_m
c359f881a1 Relative Snap -make it activated by the tertiary modifier during drag.
Disabled/enabled with the shift key. no config stuff at all now.
	Move existing (strange) trim feature to primary + tertiary modifiers.
2015-05-17 23:47:01 +10:00
nick_m
91a34c596d Relative snap - support magnetic mode (hackishly for now) 2015-05-17 04:26:05 +10:00
nick_m
bbafb8f137 Cleanup relative snap code. 2015-05-17 00:23:25 +10:00
nick_m
68a8330afc Relative snap 2015-05-16 04:15:52 +10:00
1dfee48139 Heuraka! Nightmarish rework of DnD code.
Allow to drag multiple regions from different tracks
to/from the dropzone.

Busses & Automation-lanes are ignored, as are
hidden tracks.

Any region may serve as mouse drag anchor.

fixes #6172 and #6176
2015-03-26 23:33:13 +01:00
a53bd72697 remove crufty variable 2015-03-25 17:21:13 -05:00
3c55eb1e39 DnD, only use track relationship
Ignore any routes or automation lanes during
region y-axis distance calculation.
2015-03-25 17:15:32 +01:00
b637c2223f Major rework of DnD.
Allow dragging multiple regions from multiple
tracks across any number of hidden tracks and 
automation lanes.

fixes #6176 and #6172
2015-03-25 01:48:29 +01:00
8304471062 fix up recent cherry-picks from waves' tracks 2015-02-13 16:42:05 -05:00
456374c995 implement axis-limited dragging 2015-02-13 16:21:57 -05:00
994dff91a2 detect if drags appear to be vertical or horizontal as we cross the move threshold
Conflicts:
	gtk2_ardour/editor_drag.cc
	gtk2_ardour/editor_drag.h
2015-02-13 16:21:37 -05:00
7644533103 implement RangeMarkerBarDrag::abort
Conflicts:
	gtk2_ardour/editor_drag.cc
2015-02-05 19:34:31 -05:00
22435bb53d make MouseCursors invalid cursor API be static; use to initialize default cursor value in Drag API; use C API to set canvas cursor 2015-01-24 12:26:58 -05:00
fe08965d91 fix indentation from prior commit 2015-01-23 13:45:21 -05:00
GZharun
6976a78100 [Summary] Fixed bug 45163: Trim range from right corner of timeline leads Tracks to crash
[Details] Crash was provoked because of an attempt to add commands to the session reversible command, but when autoscroll started and trim began with autoscroll the session reversible command was not created for for Trim Drag.
2015-01-23 13:43:52 -05:00
d39d4c1c11 Fix automation range drag and implement for MIDI.
Range select rect sticks around now after switching to the draw tool, but
disappears if a note selection is made.  Not sure if draw is really the most
appropriate tool here (particularly if we ever implement actual pencil-like
drawing); edit contents seems more appropriate but that would probably cause
more selection issues, so here we are.
2015-01-13 23:30:37 -05:00
David Robillard
670938c8c4 Fix various cursor problems.
Add a new scoped cursor system that makes it much harder to screw up and end up
with stick cursors and so on.
2014-12-20 01:13:25 -05:00
603748d68a Unify gain and draw tools.
There might be a few special cases lingering around from attempts at magic tool
business, but this seems to work fine as far as I can tell.
2014-12-07 20:37:46 -05:00
ea5876b836 Remove dead code. 2014-11-25 02:11:44 -05:00
d953f1ce0e when dragging on the canvas, use x,y pointer coordinates to decide if motion has occured.
Using _last_pointer_frame breaks when dragging to the left of the canvas, because we clamp
the value of the frame to >= 0. Motion would step once the pointer crossed the left edge
of the canvas because the frame value would always be zero.

This is not a problem when using the pointer x,y values which end up appropriately negative
under all conditions.
2014-11-24 21:59:29 +02:00
9331aa69bd new code to support creating skip markers 2014-09-17 09:39:29 -04:00
d97199088b some code shuffling to make sure that cut mode always operates at the mouse location, with (maybe) the right regions 2014-07-07 10:13:26 -04:00
a34861c38e use an EditorCursor when dragging in cut mode to indicate cut position 2014-07-07 08:26:37 -04:00
779fe6c082 add functionality for cut tool 2014-07-07 07:05:44 -04:00
e5e12acc56 Merge branch 'ripple-mode-cc' into cairocanvas
Fix up merge conflicts in
	gtk2_ardour/editor_mouse.cc
	gtk2_ardour/editor_ops.cc

Also fix up compile errors.
2014-07-01 19:10:47 +01:00
da65f3778c Fixes for ripple mode drag
Make undo of ripple mode dragging work a bit better, and hopefully prevent
rippled regions from jumping about when being dragged.
2014-07-01 18:46:13 +01:00
280fc81e05 modifications to region drag implementation
(1) if we're dragging over the drop zone, then x-axis motion is irrelevant for threshold-of-move
(2) store original time axis view of a dragged region so that if we create a new track with the region drag, it can be the same height
2014-06-19 11:18:44 -04:00
c30bda5173 a set of inter-related subtle changes to get vertical autoscrolling to work, or at least work better. 2014-06-17 08:08:14 -04:00
8487314069 introduce Drag::_trackview_only which indicates that all y-axis positions for the pointer during a drag should be relative to the top of the trackview group.
More or less all drags except for Cursor (playhead) and drags in the range marker bars have this true (which is the default value)
2014-06-08 11:26:32 -04:00
ea3918ba2d disable snap fades to 'other' region (for now) 2014-06-01 00:40:07 +02:00
4843c5d5cf towards region-trims preserving fade duration 2014-05-31 03:53:59 +02:00
8fd69776ea adding a new track via copy-region-drag now works (and shares code with the non-copy case 2014-05-19 14:00:36 -04:00
933da08c72 Ripple mode: tidy up
Remove a load of debug output and dead code.
Move implementation of RegionRippleDrag::y_movement_allowed() out of
header into .cc file.
2014-05-07 19:46:24 +01:00