Bug 2135 - Audacity crashes if launched with a locked pluginregistry.cfg file
Bug 2651 - If pluginregistry.cfg gets locked while Audacity is active the Plug-in Manager is blocked - with no help
Bug 2650 - Virgin launch fails with no pluginregistry.cfg file created
Bug 1264 - Writing to locked audacity.cfg not reported to user
Bug 2649 - Launching Audacity with a locked audacity.cfg file gives not one but three error messages - and no help
Bug 2652 - User is not warned if they launch Audacity with a locked pluginsettings.cfg file
The focus location provided to assistive technology by GridAx::GetLocation() does not take into account horizontal or vertical scrolling. So if there is any scrolling in either the Metadata or Labels editor, the focus location provided to assistive technology is not the same as the focus location shown by wxWidgets.
This changes the way the decimal point is specified in the
PO files...uses '<' for "," and ">" for ".".
By doing this the translator is free to use "." or "," in the
digits fields as their language requires.
... but this may be a necessary piece of any fix that might be found.
See also recent commit c67842f525095f100aa662ff59be421545d8bfc4.
wxDF_UNICODETEXT replacing wxDF_TEXT was a necessary but not sufficient step to
fix a cut-copy-paste problem on Mac, and I suspect the same will be true here.
See also commits bbd369df1b3c5860ac1145f221c93972c9bac349 and
9036c001521883300c30c8e2d7ef6775dc00f918 for the commits that introduced this
code.
The partial fix they accomplished in 2.1.3 is no longer working, whether because
of wxWidgets changes, or macOS changes, or both.
The error icon was gone because we are now using the ErrorDialog, which didn't have it. So added back explicitly. I decided to go with wxART_WARNING rather than wxART_ERROR because nearly all of these present as warnings.
In addition, I've extracted the wxTextCtrl wrapper from the
TimerRecordDialog intto widgets/wxTextCtrlWrapper.h and made
it the default for ShuttleGui::AddTextBox(). This way readonly
text controls are always included in the tab order.
If the grid is empty or does not have a selected cell, the current
row and column must still maintain these class invariants:
-1 <= current_row < rows
-1 <= current_column < columns
if either current_row or current_column is -1, then the other
shall also be -1
wxGrid uses wxGridNoCellCoords to test for current_row == -1 &&
current_column == -1. We treat the case where only one
of the coordinates is -1 as if both are -1.
... Requires some more wx header inclusions, a renaming of CopyFile (to avoid
colliding with a certain macro changing it to CopyFileW), and an explicit
deletion of a copy constructor and assignment (to avoid generation of
std::vector members for an incomplete type)
... It didn't really break the cycle, because there were still indirect
inclusions via AudacityHeaders.h.
This reverts commit 4f78874978975b42a5ca0ffb7175d586875da629.