Problem: this affects NVDA and Narrator, but not Jaws. If a user moves to the Delete button and presses it to delete a label, a label is incorrectly read as the new focus - the focus remains on the Delete button.
GridAx::SetCurrentCell() can be called when the Grid is not the focus, and send a focus event.
Fix: In GridAx::SetCurrentCell() only send an focus event if the Grid is the focus.
Problem: If the initial focus is a control in a toolbar, then after applying an effect such as amplify, then the focus is read as being a track, not the control in the toolbar.
TrackPanelAx::SetFocus() can be called when the TrackPanel is not the focus, and send a focus event.
Fix: In TrackPanelAx::SetFocus(), only send a focus event if the TrackPanel is the focus.
Problem. If an item in the list is selected, then if a different view by radio button is selected, Narrator reads the selected item rather than the radio button.
KeyViewAx::SetCurrentLine(int line) can be called when the KeyView is not the focus, and send a focus event.
Fix: In KeyViewAx::SetCurrentLine(int line), only send focus event if the KeyView is the focus.
... Unnecessary because transitively included.
But each .cpp file still includes its own .h file near the top to ensure
that it compiles indenendently, even if it is reincluded transitively later.
... Identifier holds strings used for internal purposes and not shown to users;
TaggedIdentifier generates subclasses of Identifier for different purposes,
which won't implicitly (that is, inadvertently) interconvert as function
arguments.
... To use it, first install graphViz. Then change to the scripts directory
and run ./graph.pl . Then view the resulting image file in a browser.
See an acyclic graph, each node labeled with the list of .cpp files in
one strongly connected component of the linkage dependencies as determined
by scanning the #include directives in the sources.
It worked for me in macOS.
... the error checking might not be complete, but it is sufficient for the
observed cases, where switching between 32 and 64 bit Mac builds causes
auto-recovery in one build to destroy the data saved by the other build.
Now instead, you will see an error message, recommending that you run the
same version of Audacity that produced the file.
Note that decoding of autosave files can also (less commonly) happen with
a command-line argument, and a message is written to standard out. Give the
same message in that case.
Localization of this changed message unfortunately can't happen this late in
2.3.2 development.
... I think this is a defect in wxWidgets, but one we can work around with a
simple wrapper class around wxSlider overriding one method.
To make the fix complete, change all occurrences of "safenew wxSlider"
but the one in ShuttleGui.cpp covers most cases
... This should cover most of the neglected cases, where a choice was added
by ShuttleGui.
There are some places where choices are added directly: scan the soure for
"safenew wxChoice"
I think there are still uncovered cases then in Grid.cpp, LV2 Effects, and in
commented-out parts of Transcription toolbar.
Are these important?
(This reinstates commit d2c112600d38f0894fe783f8dfd8861b5e604fce, which had
been reverted at 21a1260f912a9cb0ac8bff4f6e0fd7f8132f01ca, but making the
changes conditionally compiled on Mac only.)
This reverts commit d2c112600d38f0894fe783f8dfd8861b5e604fce.
On Windows, it is intentional that SetAccessible is not called for wxChoice in ShuttleGui.
See the commit message of f9ee3cd for background.
Changing this during code freeze and close to creating release candidates would have the danger of introducing bugs.
Fixing this bug needs further discussion. Hopefully the Mac accessibility code can be changed to bring it into line with the changes in the wxWidets accessibility code when we moved to 3.1.1
... This should cover most of the neglected cases, where a choice was added
by ShuttleGui.
There are some places where choices are added directly: scan the soure for
"safenew wxChoice"
I think there are still uncovered cases then in Grid.cpp, LV2 Effects, and in
commented-out parts of Transcription toolbar.
Are these important?