summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_mouse.cc
AgeCommit message (Collapse)Author
2018-07-27new_grid: The Return of the snap_to_X functions.Ben Loftis
We no longer assume that Snap always uses the visible ruler lines. If you want to snap to the grid, and ignore the users zoom scale, use SnapPref::SnapToGrid_Unscaled This fixes 2 (known) oversights: "snap region(s) to grid" and "regions whose start are left of the canvas edge".
2018-07-27new_grid: Add options for rulers_follow_grid and grid_follows_internalBen Loftis
2018-02-24NO-OP: whitespaceRobin Gareus
- remove trailing whitespace - remove space after opening brackets and before closing brackets - add space around operators - do not use '//' for multi-line comments, do not use "//" on line-start to comment-out code breaking indenting (-Wmisleading-indent) - do add a single space after comment-start /*{SPACE}... or //{SPACE}... - reserve duplicate whitespace " " for alignment, remove other duplicate whitespace - use established "TODO" and "XXX" (highlighted keywords) - remove equal-sign series "====" (those indicate merge conflicts)
2018-02-17Fix a few warningsBen Loftis
2018-02-11SoloSelection: gui part.Ben Loftis
2018-02-09new_grid: Rewrite of Snap and Grid. (squashed commit)Ben Loftis
Separate Snap from Grid. Lots of naming changes. Multiple simultaneous snap options allowed. Grid is one of the possible Snap options. Grid uses the same data as the rulers. Replace complicated tempo_lines with simple grid_lines. The Grid is zoom-scale-sensitive along with the rulers. If you are zoomed out, grid becomes coarser.
2018-02-09new_snap: Snapped Cursor ( squashed commit )Ben Loftis
Snapped Cursor is a line that follows the edit point, and indicates where the operation will occur. This replaces and extends the line that appears with the Cut tool. New associated preferences: snap_threshold and show_snap_cursor.
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-18no more per-track varispeedPaul Davis
2017-07-22Only add a new tempo or meter on click if the primary modifier is pressednick_m
Being able to add with any modifier can confuse a user who expected a tempo-altering drag.
2017-07-22Remove double-nested reversible command when note editingnick_m
2017-07-17Remove ArdourPrompter wrapperRobin Gareus
2017-07-01NO-OP whitespace (updated GH PR #357)Thomas Brand
2017-05-05use CoreSelection for track selectionPaul Davis
2017-02-27back to using shift-ctrl for pinch drag. set colours of affected curves.nick_m
2017-02-27highlight the tempo curve that is to be altered, modify text to suit.nick_m
2017-02-27remove tempo end drag (the control drag on the curve). a;ter tempo marker drag.nick_m
- holding down shift before initiating a tempo mark drag alters the end tempo of the previous one as before, but this is now a separate drag. - restore vertical dragging of the tempo mark to alter start/ end tempo. shift during the makrker drag alters start tempo. xontrol + shift during the drag alters end tempo.
2017-02-27rework tempo editing.nick_m
most changes are due to a new design where tempo discontinuities at the beginning of a ramped section may be set. this allows easier mapping of live performance, especially in the common case of a ramped ritard before the beginning of a new section. feature summary: holding constraint modifier (shift) while dragging the BBT ruler area drags the tempo lines by changing the start tempo (as before) holding copy modifier (control) while dragging the BBT ruler area drags the tempo lines by changing the end tempo (ahem. not quite there) dragging a tempo mark while holding constraint (shift) will change the previous end tempo to match the marker position *worth trying*. holding constraint and copy modifier (control + shift) while dragging the BBT ruler area attempts to'pinch' or twist the surrounding tempi sp that later ones are not repositioned (currently suffereng from rounding errors)
2017-02-04rework snapnick_m
snap now fills in a struct (MusicFrame) which contins a snapped frame along with a music divisor. this gives useful information wrt magnetic snap which may or may not have rounded to an exact musical position. region position may now be set musically (using quarter notes for now). this patch fixes several problems in the current code: - dragging a list of music-locked regions now maintains correct musical offsets within the list. - splitting regions using magnetic snap works correctly (#7192) - cut drag should now work correctly with magnetic snap. - musical length of split midi regions is no longer frame based.
2017-01-10avoid locate when clicking in region fade handles in smart mode+follow editsPaul Davis
2016-12-19Follow Edits => Follow RangeBen Loftis
* "Follow Edits" button had several behaviors that confused users. * "Follow Range" only has 2 behaviors: ** Click anywhere in Range mode (or Smart mode) to locate the playhead. ** When you select a Range, "Play" will play the selected range.
2016-12-13Further fixes to non-cxx11 enabled buildsTim Mayberry
Hopefully all that is necessary this time
2016-12-13Add option to Zoom to Selection on double clickTim Mayberry
Currently implemented for Region and Range selections. The new option is false/off by default to maintain existing behaviour. I'm not sure it should require another option, perhaps Zoom to Selection should be the default and accessing the region properties dialog can be via Modifier+double click, but further changes can be made on user feedback etc. Related: #7112
2016-11-23clicking on an automation line selects adjacent points correctly.nick_m
2016-09-06use moved version of reset_focus()Paul Davis
2016-08-20Amend last commit - remove some code.nick_m
2016-08-20Swap tempo/meter colours when hovering. Use entered marker for these as well.nick_m
- Note : entered_marker modifies the 'p' press, locating to the currently hovered-over marker.
2016-08-14Resolve potential ambiguity between the constraint modifier and the copy ↵nick_m
modifier when beginning a drag.
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-10Edit note dialog fixes.nick_m
- position display is session-relative - Add missing undo to note edit.
2016-07-10Exact beat - provide audio->music mapping for region split.nick_m
- for those not in the know, this series provides a way to remove the temporal distortion introduced when using an audio frame-based gui for music-locked objects. In short, the gui uses an audio frame representation to move objects. It displays the object using frame_at_beat(), quantizing the time value to audio frames. This is fine until the user selects that frame but expects it to be interpreted as a beat. Thus beat_at_frame() would not produce the user-expected beat (temporal quantization error of up to 0.5 audio samples). This is one method of mapping audio time to music time accurately.
2016-06-02various safety checks for the result of dynamic_cast-ing a TimeAxisView to ↵Paul Davis
RouteTimeAxisView Now that we have VCATimeAxisView, this needed to be done, but it also potentially applied with automation
2016-05-28Allow user to have the snap modifier pressed when using the constraint ↵nick_m
modifier to initiate a bbt ruler drah.
2016-05-27Tempo ramps - add visualtempo curve, dragging bbt or music rulers with ↵nick_m
constraint modifier dilates previous tempo.
2016-05-27Tempo ramps - add gui dilation of tempos.nick_m
- a meter can be dragged using the constraint modifier, which sets the previous tempo accordingly. This could be added to the bbt ruler to allow direct dragging of beats and bars, but the exact behavior of that is still undecided. comments? - also preliminary work on the necessary tempos locked to audio-locked meters.
2016-05-27Tempo ramps - pressing constraint modifier keys during tempo drag changes ↵nick_m
tempo with vertical movement, incorporating beat constraint (if present). - makes it easy to find suitable accelerandos for hit points in conjunction with playhead position, beat-locked tempos and initial meter frame.
2016-03-15change API for CairoWidget::focus_handlerPaul Davis
This functor/closure is responsible for stealing focus from any existing text entry (or whatever else may have focus) when clicking on a CairoWidget or derived class. The old implementation just gave focus back to the editor canvas. The new version walks up the widget packing heirarchy to find a focusable parent (from the CairoWidget for which it is invoked). If no focusable parent is found, it cancels keyboard focus in the toplevel window containing the CairoWidget
2016-02-22remove all tearoffs except the monitor section.Paul Davis
We don't need this functionality anymore as we build on 15 years experience plus the new tabbed structure
2016-01-14Change handling of Midi note selection to eliminate signal emission/delays.Tim Mayberry
Each MidiRegionView(MRV) is connected to the Selection::ClearMidiNoteSelection signal that is used to notify the all MRV instances to clear their note selection. The MRV class also has a private static SelectionCleared signal that is used to signal other MRV instances when their selection has been cleared. When the Selection::ClearMidiNoteSelection signal is emitted it causes each MRV to also emit the SelectionCleared signal. So the emission takes quadratic time. With 1500 MRV instances emission takes about 2.2 seconds on my machine, and some operations like track selection cause it to be emitted 3 times(another issue). The Selection class in the Editor knows which MRV instances have note selections, as it is notified by MidiRegionView whenever the selection count becomes zero or becomes non-zero. Clearing the Note selection should then just be O(N) and direct calls can be used rather than signals. This change removes both the signals and uses the existing references between Selection and MRV class to control note selection. There should be no behavioural changes in Midi note selection with this change.
2015-11-01Clarify context menu for midi notes.nick_m
- right click on a note selects it if unselected or selection empty. - note_context_menu is shown as described in #6348
2015-10-30"End" -> "end" in end point trim command name.nick_m
2015-10-20Select the control point about to be deleted when using shift + right click.nick_m
- fixes incorrect selection changes when doing this.
2015-10-20Allow adding / toggling rubber band selection of automation control points.nick_m
2015-10-20Show verbose cursor control point values in MouseContent mode as well.nick_m
2015-10-20Region gain point selection behaves as per track automation.nick_m
2015-10-20Make control point selection more consistent.nick_m
- disallow simultaneous events via ControlList::editor_add () - clicking on an automation line selects the points that define it. - don't 'flash' a region selection when using mousedraw mode. - cp click selection resembles region selection. - region gain points respect snap modifier (a la automation points).
2015-10-18disable follow-edits with external sync #6577Robin Gareus
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-09-16Remove ardour_ui.h header inclusionTim Mayberry