summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor.cc
AgeCommit message (Collapse)Author
2020-04-22Fix region boundary cache lookup segfaultRobin Gareus
When the cursor position is after the last item in the vector, upper_bound returns the last given iterator, here: `region_boundary_cache.end()`, which is invalid to dereference. Furthermore prevent possible duplicate prev/next pair at zero, when using the video-timelime.
2020-04-05Simplify snap-to magnetic distance calcRobin Gareus
2020-04-05NO-OP: cleanup snap-to code, mostly whitespaceRobin Gareus
2020-04-01Hide snap cursor when not using mouse edit #7966Robin Gareus
2020-04-01Remove unused variableRobin Gareus
2020-03-30remove debug outputPaul Davis
2020-03-30add braces as per coding guidePaul Davis
2020-03-30use const ref to UIConfiguration::instance() to shorten lines a bitPaul Davis
2020-03-30Fix snap if there are no locations - amend 4a036a2daRobin Gareus
2020-03-28Grid: explicitly check for empty marker list (fixes: grid fails if no ↵Ben Loftis
start+end markers yet)
2020-03-25Prevent updates to the playhead when a locate is pending after a drag/click ↵Paul Davis
is used to move the playhead. There are two problem cases: 1) the drag "fake-located" the playhead, but a redraw happens before the locate itself finishes. 2) the transport emits Session::PositionChanged from Session::non_realtime_stop(), even though this is occuring in the "middle" of the locate process (we stop first). In the first case, the drag code sets _pending_locate_request, since we need this to be true even before the queued SessionEvent for the locate has been processed. So to deal with this case In the second case, we use Session::locate_initiated() to decide if we're in the middle of a locate.
2020-03-03Fix odd right click crash on master track.Todd Naugle
To reproduce. Launch, right click in ruler area then drag down until over the master track and let go. #0 0x0000555555ba1d44 in boost::shared_ptr<ARDOUR::Route>::get() const (this=0x8) at /usr/include/boost/smart_ptr/shared_ptr.hpp:748 #1 0x0000555555ba0a2f in boost::dynamic_pointer_cast<ARDOUR::Track, ARDOUR::Route>(boost::shared_ptr<ARDOUR::Route> const&) (r=...) at /usr/include/boost/smart_ptr/shared_ptr.hpp:904 #2 0x000055555650b92b in RouteUI::track() const (this=0x0) at ../gtk2_ardour/route_ui.cc:1885 #3 0x0000555555d0b92f in Editor::popup_track_context_menu(int, int, ItemType, bool) (this= 0x555557a3efd0, button=1, time=600214966, item_type=StreamItem, with_selection=false) at ../gtk2_ardour/editor.cc:1595 #4 0x0000555555e1a4cf in Editor::button_release_handler(ArdourCanvas::Item*, _GdkEvent*, ItemType) (this=0x555557a3efd0, item= 0x555557b2fe00, event=0x7fffffffc310, item_type=StreamItem) at ../gtk2_ardour/editor_mouse.cc:1543 ....
2020-01-20include a LocateTransportDisposition argument when Editor initially locatesPaul Davis
Not clear if the editor really needs to make this call at all
2020-01-18rename DoTheRightThing to RollIfAppropriatePaul Davis
2020-01-18Session::request_locate() takes a tri-valued second argument for ↵Paul Davis
"roll-after-locate" This allows callers to defer logic about auto-play/current rolling state and more to TransportFSM where it can be cnentralized and is less ambiguous
2020-01-15Replace some Gtk:MessageDialog with Ardour's variantRobin Gareus
This fixes some issues with stuck splash screen early on.
2019-09-29Allow the Cut tool to appear in Mixbus.Ben Loftis
2019-09-25goodbye Profile->...trxPaul Davis
2019-09-18NO-OP: fix some Wimplicit-fallthrough, see prev commitRobin Gareus
2019-08-26Foldback bus should not appear in editorLen Ovens
2019-08-24Consolidate code, skip editor/mixer update checkRobin Gareus
2019-08-24Fix crash when selected automation-lane is removedRobin Gareus
When a plugin is deleted, automation-lanes of the given plugin are removed, but previously a pointed to the deleted lane remained in the selection. This caused crashes later when the track selection is used. e.g. during sensitize_the_right_region_actions() Note that ~TimeAxisView() also emits CatchDeletion (this); however "this" fails to be dynamic_cast<AutomationTimeAxisView*> because that d'tor has already been completed.
2019-08-12Re-order editor sidebar: prioritize "Tracks & Busses"Robin Gareus
2019-08-03Update GPL boilerplate and (C)Robin Gareus
Copyright-holder and year information is extracted from git log. git history begins in 2005. So (C) from 1998..2005 is lost. Also some (C) assignment of commits where the committer didn't use --author.
2019-08-01(Source List) Implement insert-region action... now uses the Source List.Ben Loftis
2019-08-01(Source List) Source list, Region List: Resolve various action+behaviors ↵Ben Loftis
between the 2 lists. Duplicate the remove_unsued_region action in the Session->Cleanup menu, for discoverability. Region list should use the same Region actions as the canvas... OK, now resolve the change in use-cases of Region List and Source List. tentative. Rough-in remove_selected_sources (Delete in Sources list). Column tweaks.
2019-08-01(Source List) Region List rewrite (gtk2 part)Ben Loftis
See: https://docs.google.com/document/d/1sI7p9RoRVZtNx2n67RvBa0_16fuZblV_lNkkKN2g93s/edit?usp=sharing
2019-08-01(Source List) Source property signals (gtk2 part)Ben Loftis
See: https://docs.google.com/document/d/1sI7p9RoRVZtNx2n67RvBa0_16fuZblV_lNkkKN2g93s/edit?usp=sharing
2019-04-09Backport Mixbus toolbutton layoutRobin Gareus
2019-03-29Fix Mixbus special caseRobin Gareus
2019-03-29Fix action-nameRobin Gareus
2019-03-20ActionManager::get_all_actions() no longer includes <Actions> in the paths ↵Paul Davis
it returns, part 3 (GUI)
2019-03-19Add an exception handler for access_action() used by control surfaces and Lua.Ben Loftis
2019-03-19Update GUI, use Session::playlists() getter (2/2)Robin Gareus
2019-03-07Request for comment: Bug or feature?Robin Gareus
2019-03-07Cleanup Editor/Marker context-menuRobin Gareus
This could have caused crashes previously: ::build_range_marker_menu() may have created range_marker_menu while the GUI wanted transport_marker_menu.
2019-03-07Fix some Gtk::Menu related memory leaksRobin Gareus
A Gtk::manage()d widget will be deleted when its parent container is destroyed. Top-level context menus are not inside a container and hence need to be manually deallocated. This adds explicit delete calls for menus where there is a member variable reference to the Menu.
2019-03-07Remove cruft: unused membersRobin Gareus
2019-03-07Remove unused region_edit_menu & edit-point actionRobin Gareus
2019-02-28Initialize per session instant stateRobin Gareus
Per session (instant.xml) GUI options do not have a sigc::slot<> backed configuration interface to initialize the Actions. This fixes a first-time start issue (no instant.xml) where GUI panes may be visible (default) while the actions are "off" (default). This is a tentative solution, instant.xml backed ToggleAction initialization needs to be consolidated somehow.
2018-12-12 replace ::cast_dynamic() with relevant ActionManager::get_*_action() callsPaul Davis
2018-12-11change action group owner pointer to be the relevant keybindings; reorder ↵Paul Davis
setting keybindings value and defining actions The reorder is required so that the value of "bindings" has been set and is meaningful
2018-12-07Remove redundant call (there's no session, nothing to save)Robin Gareus
2018-12-07Fix editor sizing issue introduced in 4dc65e66Robin Gareus
Previously Editor::instant_save() returned if no session was loaded, effectively Config->add_instant_xml(get_state()); was never called. instant save() is called early on, in Editor's c'tor before the editor is realized and saves invalid window-size and window-state, which are used later.
2018-12-06Prefer testing the session instead of using a global variableRobin Gareus
2018-12-05start using ActionMap in preference to ActionManagerPaul Davis
2018-11-11Fix playhead smoothing when auditioning.Robin Gareus
Don't use timer to keep moving the playhead when auditioning. This fixes playhead jiggling during audition.
2018-11-04Save Lua UI scripts separatelyRobin Gareus
Previously EditorAction and ExitorHook scripts were saved with instant.xml. The were saved with each session and in the config dir (for new sessions). This allowed inconsistent UI setups, especially when loading old sessions that had no or different scripts. Now Editor scripts (actions and hooks) are saved in a dedicated file, session-independently. This goes along with ui_config in general e.g. action-table-columns The scripts are not saved with ui_config file for two reasons: ui_config settings related to built-in ui_config_vars.h, and in the future there may be further indirection like "ui-rc-file". Note: previously loaded editor scripts are lost with this change.
2018-08-13Fix missing enum case: Avoid a divide-by-0 crash.Ben Loftis
2018-07-27Allow to disable smart ruler changes.Robin Gareus