This fixes the problem on GTK where the text was unreadable when
using a "dark" theme.
And fixes the double display of the real tooltip and the tip panel
being displayed at the same time on GTK and OSX. It seems that
the "disabling/reenabling" of tooltips doesn't take affect right
away anymore...maybe it never did.
Several other issues were also fixed (hopefully ;-)).
This is a major change to accelerator handling and keyboard
capturing. Menu shortcuts, non-menu commands, label editing,
navigation, and basically anything else were you might use
the keyboard should be thoroughly tested.
It had been causing problems in Unity for a while now and they
were missing on OSX as well in wx3. So, the old menu Open/Close
method of hiding has been removed and replaced with an event
filter/monitor which looks for wxEVT_CHAR_HOOK events to pass
key events to the handler that has the keyboard captured.
It was producing "ghost" windows on OSX in wx3. These were
supposed to be hidden, but they weren't any longer and after
reviewing TipPanel, I realized that there was a separate
code path for OSX entirely...must've gone back to some of the
earliest versions.
Now all platforms use the same bit of code.
This also re-enables the splash screen and recombines the
OnInit() and FinishInits() since I'm pretty sure the progress
dialog was the issue.
I also retested (as much as I could) and cleaned out all of the
little "hacks" the progress dialog gained over the years. With
the new modal handling of wx3, it seems that things are much better
behaved.
However, it seems that wxGTK (at least) has gained some new focus
probs (to be dealt with later).
... miscellaneous direct uses of ZoomInfo::zoom to test and set zoom level.
This includes all the remaining assignments to it.
But moving TrackInfo::PositionToTime and TrackInfo::TimeToPosition into
ZoomInfo and using them is needed to eliminate many more uses.
Also #if'd out the unused AudacityProject::OnZoomToggle().
wx3 on OSX has changed how the mouse wheel delta is calculated. Prior
to wx3, it was simply set to 1 so the wheel rotaion value was simply
increments of one.
With wx3, higher resolution devices (like touchpads) are supported so
the value for wheel rotation can be a fraction of the delta, so it is
possible to pass a zero value to the NumericConverter::Adjust() method.
Therefore, the method just returns in this case.