If the text being pasted can be parsed as ASS dialogue events, then do
so even if the edit box is focused since it's rather unlikely that
the user actually wants ASS subtitle events in their subs.
Operate on characters rather than bytes in the dialog so that it
actually works with Kanji.
Rewrite the auto-matcher to handle more cases and add unit tests for it.
Unsurprisingly the munging around with the menu bar implementation
details has resulted in things breaking, but fortunately the problem it
was working around (#1314) appears to have been fixed entirely.
Closes#1628.
Rather than pinning the time at the center of the audio display, pin the
time at the mouse's position since that's the area the user probably
cares about. If the mouse is not over the audio display (such as if the
user is adjusting the zoom via the sliders rather than the mouse wheel),
just use the center as it used to.
The X scale/offset was being used for both X and Y coordinates.
Only non-negative integers were supported. xy-VSFilter and libass both
now support non-integer coordinates, and negative coordinates have of
course always been valid. Resampled coordinates are now rounded to
eighth-pixels rather than whole pixels.
Calling GetReverseUnicodePosition on the selection positioning after
calling SetText resulted in the conversions between UTF-8 indices and
wxString indices just being a very slow no-op.
wxEVT_CLOSE_WINDOW is only triggered from the platform's close buttons,
not cancel buttons/ESC, so modeless dialogs closed in that way were not
getting deleted.
Video frames aren't actually BGRA; the alpha channel is actually just
garbage since CSRI uses 0 for opaque and other things use 255. To work
around this, add a custom colorspace converter.
Fixes the subtitles preview in the style editor and copying frames to
the clipboard/saving them.
Closes#1621.
Poorly-written antivirus software briefly lock newly written files to
scan them for viruses, which makes the rename from the temp file to
actual file fail. Work around this by retrying the rename up to ten
times.
Closes#1620.
Removing the first character from the non-custom case resulted in an
error when the value was empty and resulted in nothing happening when a
valid value was present.
wxSpinCtrlDouble only updates its value when the spin button is clicked
or it loses focus, and in some cases we want to read the value while it
still has focus.
Closes#1610.