summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_canvas.cc
AgeCommit message (Collapse)Author
2017-07-17Clean up library inheritance (colors.h, utils.h)Robin Gareus
make libwidget independent of libcanvas. Confine basics to pbd and gtkmm2ext.
2017-07-01NO-OP whitespace (updated GH PR #357)Thomas Brand
2017-06-26Changes to Editor::visual_changer to support Item/Canvas::prepare_for_renderTim Mayberry
This is necessary to allow calculation of correct intersection of visible canvas area and items for the new Item::prepare_for_render() API. samples_per_pixel must be set first to calculate the new horizontal canvas position in Editor::set_horizontal_position and then WaveView::set_samples_per_pixel will eventually call WaveView::prepare_for_render for those items that are visible on the new canvas position at the new position. Or if there is not a change to zoom state then call Canvas::prepare_for_render explicitly. Also changes so that each method is only called once during Editor::visual_changer
2017-06-26Coalesce visual changes to canvas/items and allow canvas to renderTim Mayberry
First visual change will be processed as normal and then blocked until the canvas renders the change. If further visual changes need processing then Editor::pre_render callback will schedule another expose/redraw/render. This prevents an issue where idle_visual_changer is called many times in response to events(keys/motion/etc) but the canvas does not get a chance to render any but the last one which results in a big pause/jump. This results in a more responsive canvas and in particular a smoother and more predictable zooming experience.
2017-03-21Use NSGLView backed main editor canvasRobin Gareus
2017-02-15simplify arguments to Editor::sensitize_the_right_region_actions()Paul Davis
2017-02-15use leave/enter from track canvas to be the primary driver of region action ↵Paul Davis
sensitivity This works for context menus also, because GTK sends us leave/enter notify events when they appear.
2017-02-09NO-OP: whitespace conversionPaul Davis
2017-02-09when considering whether or not to autoscroll teh canvas, first translate ↵Paul Davis
allocation boundary into toplevel coordinates
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.
2016-12-16add arguments (unusued) to control whether or not SMF tempo map is used ↵Paul Davis
during import
2016-12-14GUI changes to allow user to specify how/if to use SMF track/instrument ↵Paul Davis
names during import
2016-10-17Performance: store NoteBase UIConfiguration colors between config changes.nick_m
Cumulative time in percent while wiggling the tempo lines rapidly. Before: MidiRegionview::update_sustained 12.02 NoteBase::base_color 6.43 MidiGhostRegion::update_note 3.12 Note::set 1.27 TempoMap::frame_at_quarter_note 0.59 _dynamic_cast 0.13 After: MidiRegionview::update_sustained 10.49 MidiGhostRegion::update_note 5.57 Note::set 2.52 TempoMap::frame_at_quarter_note 1.13 NoteBase::base_color 0.17 _dynamic_cast 0.17
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-04-13get editor controls layout/midi track header/scroomer to be the correct heightPaul Davis
Using is_mapped() is wrong, since if the editor was not visible (i.e. program has not yet shown the editor "tab", then _group_tabs will have is_visible() == true but is_mapped() == false
2016-03-19reset autoscroll speed to minimum when scrolling stopsColin Fletcher
Reset the autoscroll counter when scrolling stops, and correct the check when vertical autoscrolling is permitted for whether scrolling has stopped.
2016-02-22change GTKOSX macro constant to use __APPLE__ insteadPaul Davis
2016-02-22remove all trace of SAE from source code.Paul Davis
This had become incoherent over time, and posed a development hazard and burden going forward
2016-02-22replicate the remove-all-trailing whitespace commit(s) in masterPaul Davis
2016-02-22cleanup various merge conflict resolution errors/omissionsPaul Davis
2016-02-22first compilable version of tabbable design.Paul Davis
I would have loved to split this apart, but there are just so many interrelated changes, it makes little sense and would be a huge effort that would break future git bisect use because so many intermediate commits would not compile
2015-12-06Fix inoperative keyboard modifiers when leaving autoscroll.nick_m
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-16Move UIConfiguration Singleton into UIConfiguration headerTim Mayberry
This removes the direct dependence on ardour_ui.h from 39 files
2015-09-16Move DPIReset and ColorsChanged signals into UIConfigurationTim Mayberry
2015-08-05add synth when drag/drop importing .mid - fixes #6474Robin Gareus
2015-07-16merge fixBen Loftis
2015-06-28show selection trim cursors in Range modeBen Loftis
2015-06-21Mkae automation line / gain line cursors consistent.nick_m
2015-06-01fix cursor in smart mode, when moving up and down the frame handlesBen Loftis
2015-01-24make MouseCursors invalid cursor API be static; use to initialize default ↵Paul Davis
cursor value in Drag API; use C API to set canvas cursor
2015-01-23allow use of null pointer as a valid cursor (implies using cursor of parent ↵Paul Davis
window)
2015-01-16Revert "Kludgey fix for invisible playhead when scrolled."David Robillard
This reverts commit 8f823388d9bd5aa8e297ab05be8c9fb323518945.
2015-01-16Kludgey fix for invisible playhead when scrolled.David Robillard
The problem this is avoiding makes absolutely no sense. Either I'm dumb, or something is more deeply wrong with scroll group bounding boxes, or both, but I don't care anymore. This works. Viva release mode.
2015-01-16Put playhead on top of everything.David Robillard
Achieve this by adding a new hscroll group just for cursors. That requires a slightly smarter window_to_canvas() to deal with overlapping sensitive scroll groups. New rule is that scroll groups can overlap, but the most sensitive one found from the top down will be chosen to translate coordinates. This basically means don't overlap scroll groups with different sensitivities. In the presence of scroll groups, having a canvas-wide window_to_canvas() and/or canvas_to_window() fundamentally makes no sense. At some point in the glorious future we should kill those and use only item-relative coordinate translation.
2015-01-12Put tempo lines below tracks.David Robillard
2015-01-12Remove unused vertical scroll group.David Robillard
2015-01-12Revert "hotfix z-stacking"David Robillard
This reverts commit 03f0229bcfc35916f81c6187948df3ea3b79a976. Mitigate the fallout from said overly aggressive revert: preserve the alpha values to not break the color configuration for when the lines are fixed.
2015-01-11hotfix z-stackingRobin Gareus
This reverts commit 780c1762 and e70c9a3 Both combined introduced various bugs: * rubberband-selection has a scroll-offset * region drag/drop has wrong y-offset * ranges (loop etc) are above the playhead * possible scroll performance hit (long unclipped lines in h_scroll_group) on the downside: time-grid is now no longer visible behind the rulers. Doing that will require a different approach…
2015-01-10Raise regions about tempo lines.David Robillard
2015-01-08Show tempo lines under marker bars.David Robillard
2015-01-07Update background color when theme is changed.David Robillard
2014-12-30Fix smart mode cursor on audio regions.David Robillard
2014-12-23Fix cursor update on nested entry.David Robillard
For example, if you're in a note and something about the mode changes, it's the underlying region context that needs to change. So, seems we need a stack of entry contexts to deal with this sort of thing. Switching in/out of smart mode still doesn't update immediately because we don't have the y-coordinate needed to update it.
2014-12-23Update canvas cursor on pop.David Robillard
2014-12-22move all (G)UI related configuration parameters into UIConfiguration, not ↵Paul Davis
RCConfiguration
2014-12-20Fix various cursor problems.David Robillard
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-18Remove internal edit mode and add "content" tool.David Robillard
2014-12-16Fix marker bars "gradient" colors.David Robillard