Problem:
When the TrackPanel regains focus, screen readers do not read the track name.
Introduced by the commit: acfd2b70
Fix:
Change TrackPanel::SetFocusedCell() so that it actually sets the focus, rather than just getting it :)
Note: this also fixes bug 2238
... Not the most satisfactory fix, but in fact no dangling pointers will
happen with the code we have now, because the relevant windows are all destroyed
only at the end of AudacityProject's lifetime, including the non-modal windows
(macros, history, lyrics, mixer board, plot spectrum, and contrast) which
are hidden and shown again, not destroyed and recreated, when dismissed and
reopened.
To do: figure out how to make wxWeakRef work on that combination without
crashing.
Sets the default optimization level for release builds to -O2, though
allowing this to be overridden with CFLAGS / CXXFLAGS.
When the --enable-debug option is selected, optimizations are overridden
by '-O0 -g'.
This ameliorates the problem, by prompting the user telling them the lock file
location. It does not fully solve it, but should allow us to reduce the bug to P2.
This change reduces the risk of LADSPA plugins referencing
Audacity symbols by using the RTLD_DEEPBIND flag when loading
the plugins.
It also addresses an issue specific to the "blop" plugins where
they load their own libraries (without RTLD_DEEPBIND).
A much better solution would be to change Audacity's default
symbol visibility to "hidden" which would expose ONLY symbols
specificially marked as visible.
In bool MenuManager::TryToMakeActionAllowed(), there's the condition:
(MissingFlags & enabler.possibleFlags()) == MissingFlags
that is, the missing flags has to be a subset of the possible flags.
For cut in pause mode, this condition is not met for the enabler stopIfPaused, because MissingFlags also includes the CutCopyAvailableFlag, which is not one of the enabler's possible flags.
It is not sensible for the missing flags to have to be a subset of the possible flags, because for this to work, for each enabler the possible flags would have to include other flags that could need fixing by other enablers.
Fix:
1. Change the condition to the intersection of the missing flags and possible flags is non-empty.
2. In CutCopyAvailableFlag, remove the condition !AudioIOBusyPred(). If this is present, then due to the first change, paused audio could cause all audio to be selected even when there was a selection. The commands for which this flag is used are cut and copy, and they already have AudioIONotBusy flags, so this change should not affect previous behaviour.
This reverts commit 458d92157a4fccb2524971f607e28a6c73b1901f.
The fix caused another bug: when paused, with select all enabled, all audio was selected.
In bool MenuManager::TryToMakeActionAllowed(), there's the condition:
(MissingFlags & enabler.possibleFlags()) == Missing
that is, the missing flags has to be a subset of the possible flags.
For cut in pause mode, this condition is not met for the enabler stopIfPaused, because MissingFlags also includes the CutCopyAvailableFlag, which is not one of the enabler's possible flags.
It is not sensible for the missing flags to have to be a subset of the possible flags, because for this to work, for each enabler the possible flags would have to include other flags that could need fixing by other enablers.
Fix: change the condition to the intersection of the missing flags and possible flags is non-empty.
Now the export (should) exactly match the (selected) non greyed out tracks.
i.e. what you see and hear is what you export - no matter which mode of
mute/solo you choose.
This is now applied not just to export but also to export multiple.