To get a split view: move the mouse near the top or bottom of a wave track view
until the cursor changes to "north-south", then drag and release.
When a separation of views exists, the separation line can be dragged again.
You can drag until one of the sub-views shrinks to nothing. There is a certain
snapping (now 5 pixels) to make this easier and prevent very small views shorter
than that.
Notes:
- ESC key before mouse release cancels the drag, as expected.
- Either wave or spectrum view can be on top, depending on how you drag.
- Please note, and test, that the vertical ruler also divides in two portions,
and that all mouse drag actions (including spectral selection) in the track
view or the ruler are available, and only those proper for the sub-view.
- If you have a stereo track, then the wave and spectrum views keep the same
height proportions in the two channels.
- If you want to drag the channel separator instead, unfortunately there is no
difference yet between the preview cursors. North-south seems the most sensible
cursor for both of these drags, among pre-defined cursors.
- The drop-down menu of the track control panel may now have two checkmarks, for
spectrum and for either Waveform or Waveform dB. Selecting any of those items
causes that view type to become the sole view.
- In my opinion, the behavior above is not satisfactory. I think the more
consistent user interface would have only Waveform and Spectrum items as a
non-exclusive radio button choice in the menu, while the choice between linear
and dB waveform view should be part of the right-mouse popup menu in the
vertical ruler, analogous to the choice among scales for spectrum view.
- The 'VIEW property of *TRACK* in Nyquist is now a list rather than an atom
when there is a split view. None of the existing .ny plug-ins that ship with
Audacity need to be changed, because they only ever test whether the property
is nil, indicating that an effect preview is being computed.
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.