Age | Commit message (Collapse) | Author |
|
When tracks in a gain-sharing group are selected, stepping gain
up/down affected the tracks N times:
for-each selected track inc/dec gain w/grouping.
When a mix of grouped and un-grouped tracks is selected, this lead to
inconsistent gain changes.
The new approach expands the groups first. Ignoring groups is not correct
either for single selection.
|
|
|
|
This moves child-selection API up into TAV (Superclass of StripableTAV
which actually owns the children)
|
|
|
|
|
|
|
|
Route::before_processor_for_index() uses display_to_user() which
includes the Amp.
Insert position is still be wrong with the debug mode
ProcessorBox::show_all_processors == true, but that's not a regression.
|
|
|
|
|
|
|
|
Use Editor::first_idle() which is invoked every time when a session
is loaded (via set_session). This will catch ALL successful
session loads.
Failed session-loads explicitly pop down the splash in
ARDOUR_UI::load_session.
This only leaves "abort session open" which returns to the
session-open dialog (which pops back the splash).
|
|
|
|
During ARDOUR_UI::finish(), after destroying various instances:
close_all_dialogs() -> ArdourDialog::on_response() -> GUIIdle()
The event loop recurses and may execute a previously scheduled
Editor::idle_visual_changer()
|
|
6af51b52 moved to dedicated show-editor/show-mixer actions for
keybindings because the Mixer has a dedicated handler.
For Control-surfaces a common action is still practical.
Note: This is still broken for detached windows. it currently only
toggles tabs correctly.
|
|
|
|
|
|
|
|
This was superseded by WindowProxy and the ARDOUR::Processor
[set_]window_proxy() API
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ARDOUR_UI::load_session() calls flush_pending() which runs
gtk_main_iteration()s until idle.
If a user selects another snapshot from the sidebar, load_session()
is called again (from a call to load session)
|
|
|
|
|
|
|
|
|
|
|
|
If pending_visual_change.pending was zero when calling idle_visual_changer
the handler_id was never reset. and the idle-handler was never called
again.
|
|
|
|
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
|
|
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.
|
|
This multiplier really should be based on the "responsiveness" of the
canvas..or something. I think this is an improvement for more complex sessions
with many regions.
|
|
|
|
|
|
|
|
|
|
Add to source files that use LocaleGuard
Results in far less recompiling when pbd/locale_guard.h changes
|
|
All float <=> string conversions are now done using PBD::to_string/string_to()
in ConfigVariable class or via XMLNode::get/set_property()
|
|
float <=> string conversion is done using PBD::string_to/to_string() via
XMLNode::get/set_property so the LocaleGuards are no longer necessary
|
|
PBD::string_to is now used for float <=> string conversions so a LocaleGuard is
no longer necessary.
|
|
all float <=> string conversions are done via PBD::to_string/string_to. Either
via XMLNode::get/set_property or directly in HSV and SVAModifier classes
|
|
The float <=> string conversions that this guard was protecting are now using
PBD::to_string/string_to() via XMLNode::get/set_property()
|
|
There are no float <=> string conversions in these methods and g_base64_encode
etc functions are not affected by locale.
|
|
All float <=> string conversion is now done using PBD::to_string/string_to()
via XMLNode::get/set_property()
|
|
All float <=> string conversions are now done using locale independent
PBD::to_string/string_to() via XMLNode::get/set_property
|
|
|