Problem: When [gui/shortcuts]fulldefaults is true, then you can't clear the shortcut of a command which is only in the full set.
In bool KeyConfigPrefs::Commit(), for a command only in the full set, dkey = "", so if the key is set to "", there will be no entry in NewKeys for this.
In CommandListEntry *CommandManager::NewIdentifier, if [gui/shortcuts]fulldefaults is true, then for all commands the key is initially set to the default. For the shortcut that should have been cleared, there is no entry in NewKeys to override this, so it is in fact not cleared.
Fix: In bool KeyConfigPrefs::Commit(), when [gui/shortcuts]fulldefaults is true, use the full set of defaults to find the default key.
Defaulted move constructors and assignments introduced at 080dd34 are not
essential but might give a bit more efficiency in std::vector on non-Windows.
Previous compilation fix was incorrect! Excpliticly defined move assignments
should not have had no-effect bodies!
... Certain strings reported by PluginDescriptor are written into configuration
files, so these strings should NOT be carelessly changed between Audacity
versions. And the source of some of these strings are overloads defined in
other classes in src/effects
... and the distinction makes a difference only for built-in effects.
"Id" is meant to persist in pluginregistry.cfg, and is constrained by how
previous versions of Audacity were written.
"Name" is not persistent, so we have the liberty to change it, as done here
for the built-ins.
- Registration names of align commands sorted. They had &, : and / in them.
- Fixed bug in SetTrackInfo where bFocused was being ignored
- Fixed bug where command manager ignored multi-commands.
This also adds an option NOT to bring Audacity to the top when screenshotting.
That's because QuickPlay will disappear if you do -because you lose mouse capture.
Also allow negative window IDs in the drag command.