13
0
Commit Graph

464 Commits

Author SHA1 Message Date
f851a0bf3a two more drop zone checks
see also 6cfb6ef
2015-03-25 13:05:24 +01:00
6cfb6ef665 fix drop-zone drops
There is no special ‘-1’ indicator any more.
i->time_axis_view is unbound to allow relative
positioning when dragging multiple regions.
2015-03-25 12:11:49 +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
92ba2d5780 partial fix for Canvas Region DnD & comments
Fixes #6172 and #6176 for single region drags.

Further work is needed if multiple regions on different tracks are dragged over hidden tracks
(see inline comment).
2015-03-24 15:25:39 +01:00
a5db1d588e Fix dragging regions to/from drop zone (#6137).
The previous code assumed that dragging up from the drop zone into the last
track is always valid.  This is not true when the type of the dragged region(s)
do not match that route, which resulted in a crash and/or bizarre behaviour.

This took entirely too long to figure out, there are some real nightmares in
the region drag code...
2015-03-15 03:45:26 -04:00
80bb72bbe2 fix drag-motion over TAV w/o view() 2015-03-08 03:42:33 +01:00
3f8583f8d6 stop dragged regions moving to the dropzone during autoscrolling towards the top track 2015-02-18 12:27:11 -05:00
dd8f2cfe18 fixes for non-overlapping fade in/out even in regions not at zero 2015-02-16 16:27:50 -05:00
236f549caa insanely complex fixes for dragging to and from the drop zone.
This probably breaks some of ardour's functionality (e.g. layered mode), but seems to
be either just right or very close to it for tracks

Conflicts:
	gtk2_ardour/editor_routes.cc
2015-02-13 17:00:30 -05:00
8304471062 fix up recent cherry-picks from waves' tracks 2015-02-13 16:42:05 -05:00
6f98f91f18 prevent fade in/fade out on audio regions from overlapping each other 2015-02-13 16:22:08 -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
eb45b3baaa fix behaviour of region-copy-drag when using the dropzone.
The copied regions all had a null playlist pointer, so they all ended up on
the same (new) track
2015-02-13 16:19:06 -05:00
78d76c197e allow normal right trimming even if the start of a range is at zero
Conflicts:
	gtk2_ardour/editor_drag.cc
2015-02-13 16:18:24 -05:00
bc2271b43e After dragging from multiple tracks to the dropzone, create the right number of new tracks.
This does not address the visual flattening that occurs before the drop
is complete. Doing that is complex and there is no immediate solution
visible. The result after the drop is complete is correct, however.
2015-02-13 16:17:27 -05:00
ef79d1c4d4 fix last cherry-pick 2015-02-09 14:46:20 -05:00
abcd70c1d2 After dragging from multiple tracks to the dropzone, create the right number of new tracks.
This does not address the visual flattening that occurs before the drop
is complete. Doing that is complex and there is no immediate solution
visible. The result after the drop is complete is correct, however.

Conflicts:
	gtk2_ardour/editor_drag.cc
2015-02-09 11:03:03 -05:00
ec37c83507 fixup cherry-picked changes from Waves Tracks, and fix for Ardour 2015-02-05 20:26:02 -05:00
7644533103 implement RangeMarkerBarDrag::abort
Conflicts:
	gtk2_ardour/editor_drag.cc
2015-02-05 19:34:31 -05:00
e6752fb729 implement MarkerDrag::abort() 2015-02-05 19:33:31 -05:00
7ffc06b08d fix issue with region dragging while mouse pointer is in rulers/marker lanes 2015-02-05 17:42:46 -05:00
nick_m
ff13ac8b4f Clean up Session's _current_trans when aborting a drag. 2015-02-05 23:32:57 +11:00
nick_m
f9b2587458 Make redo action insensitive after new command.
Don't erroneously send first_move more than once after autoscroll drag.
2015-02-05 19:57:56 +11:00
47f8125b35 amend e3da18fd 2015-01-26 17:14:24 +01:00
e3da18fd2f fix copy/drag abort. 2015-01-24 20:40:07 +01: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
90c1e0ffd2 allow use of null pointer as a valid cursor (implies using cursor of parent window) 2015-01-23 15:19:36 -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
nick_m
ae7b978b0b Fixes for when rubberbanding_snaps_to_grid config setting is off.
The initial point and the ultimately selected items were always following
the snap settings. Also the VCC was displaying incorrectly on button press.
2015-01-20 04:49:44 +11:00
nick_m
ade1c4923c Fix note resize double undo bug.
Newly drawn notes are selected.
Clear midi note selection on Selection::set_state().
2015-01-17 04:55:05 +11: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
nick_m
44203ce955 Fix AutomationTrackItem rubberband click thinking it was unhandled.
Fix several other cases where a single mouse click could cause several
(not nested) selection ops.
Fix missing selection memento for midi notes and midi commands.
Rename some variables.
Fix random style issues.
2015-01-11 04:07:31 +11:00
2a251b4570 MusicalTime => Beats. 2015-01-07 00:12:07 -05:00
nick_m
a795892492 Separate selection operations into their own temporary history mechanism.
The user can now replay *all* earlier selection operations until the next
session undo/redo command, or the completion of a new operation.
Nothing relating to selection ops is stored, and selection operation history
is begun on first idle.

Selection operation history is fundamentally different from the history of
operations which act on a selection in terms of both their viewport and the
amount of information required to replay them.
WRT undo, the user of a selection op doesn't care about the viewport state
at the beginning of an op, but rather that at the end of the previous one.
2015-01-02 08:01:12 -05:00
64fa63212f move all (G)UI related configuration parameters into UIConfiguration, not RCConfiguration 2014-12-22 13:39:46 -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
nick_m
9af9e17adc Add editor selection state to session history via a SelectionMemento, which
combines selection related editor properties with the current editor selection.

The related editor properties are:
mouse mode,
zoom setting,
left frame of the canvas,
y origin of the canvas.

Selection state now includes region views (storing the underlying region id)
and time.

This patch also fixes a region mute undo bug.
2014-12-18 11:03:10 -05:00
56ca52651e fix up requested color names everywhere.
Thank <deity> for emacs ... space-uncamelcase-word-at-point FTW
2014-12-14 16:15:38 -05:00
48a7a11974 initial pass to replace all UIConfiguration::get_XXXXXX() calls with UIConfiguration::color(name).
IMPORTANT: names have not been downcased and spaced yet, so many colors are not found
2014-12-14 12:27:07 -05:00
116722f182 Fix uninitialized value in note create drag. 2014-12-07 20:37:53 -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
57c1b6e261 Fix quantization and other time-related ops. 2014-11-22 21:49:42 -05:00
c1cfa12d6e Wrap MusicalTime in a class.
This lets us get a more explicit handle on time conversions, and is the main
step towards using actual beat:tick time and getting away from floating point
precision problems.
2014-11-22 04:05:42 -05:00
9d8bbf4b9a Remove unused variables. 2014-11-20 11:31:31 -05:00
adea8ab68f Fix mismatched note resize drag cursor and behaviour. 2014-11-18 02:53:27 -05:00
563f5c11a6 Support cut/copy/paste of MIDI notes and controllers at the same time. 2014-11-16 22:35:45 -05:00