Added forcing time64 to be positive. Fixes problem where large negative value overflows into int.
More careful computation of TimeToPosition() so floor is only called with in range values.
Re-instated 'true' flags for hiddenMid calls, which I'd mistakenly dropped, so that (later) FishEye can distinguish.
Caused by a premature conversion of a wxInt64 to (int) so that a large positive number became negative.
We now do the conversion after minning it against an integer width.
The residual issue here was that an old cfg could go on using the unsafe path. So we check for the unsafe path at init and silently substitute the good path. If the user attempts to re-instate the unsafe path we tell them no, with an informative message. This change was made more complex by windows allowing different strings for the same path, specifically C:\Users\JAMESC~1\AppData\Local\Temp\audacity_temp contains the shortening '~' so in the function that tests 'IsTempDirectoryNameOK' we use GetLongPath() to always compare the expanded names.
I also changed directory prefs to add SessionData rather than audacity_temp on the new directory name, on windows when choosing a new temp directory.
[lib-src/libnyquist/nyquist/nyqsrc/sndwritepa.c:249]: (style) Same expression in both branches of ternary operator
[lib-src/libnyquist/nyquist/nyqsrc/f0.cpp:137]: (error) Mismatching allocation and deallocation: results
The 'easy' way to patch wxWidgets 3.0.2 is to copy the modified files over the 3.0.2 installation. Updated text explains what is changed from default wxWidgets.
Audacity can be built with dynamically loading/unloading the MP3 library
(the default) or dynamically linked against the shared object file
(--disable-dynamic-loading). The code to load the library is only needed
in the former case.
New behaviour, instead of resizing window when it doesn't fit, use the default size/position.
This touches code involved in the fix for 1119 (mac only bug on small screens) and should still
fix that bug, but that will need testing.
New fix. It appears to be a bug in wx3. Hiding a Modal window (under linux) can stop it being modal. So rather than EndModal() we send an event to close the window which works whether wxWidgets thinks the window is modal or not. Additionally we set the focus back to the parent window, becuase of a side bug under windows, and we new the status dialog rather than allocate it on the stack, because the status dialog is NOT run with ShowModal() which is the only time we can safely use an on stack dialog.