- Open modals now dim the player and prevent interaction with the
underlying content until it is closed
- Right-clicking outside of an open modal now closes it instead of
displaying the browser context menu
- Fixed a regression where right-clicking with the Ruffle context
menu open would open the browser context menu
Dark mode support has been added to the context menu as well as the
the Volume and Save Manager modals. The latter two have also received
significant visual upgrades.
Both implementations currently use `screen_position_to_index`, which
is inaccurate, and that's why these methods still produce a stub warning.
However, this implementation makes some games work, is a lot better than
a perfect implementation which would require a lot of work and time,
and infinitely better than no implementation at all.
Before this patch, it was possible that some objects did not have a
debug rect despite existing on the stage and interacting with the user.
That was the case for instance for buttons with hit bounds and no up state.
This patch ensures that debug rect is at least as big as highlight bounds,
which are used to highlight focused objects on the stage.
FP recognizes modifiers for numpad keys, but ignores them for non-numpad
keys, so that pressing Shift+3 produces key codes for Shift and Key3,
but pressing Shift+Numpad7 produces keycodes for Shift and Home.
The output.txt of this test was invalid,
because it skipped a carriage return after one of the lines.
This has of course something to do with the whole CR/LF/CRLF newline
madness, as the trailing CR formed a CRLF with the "real" newline
character LF, and (I suspect) git replaced it with LF ignoring
CR completely, which badly influenced the current implementation.
This test will be replaced with a proper test when
the implementation is fixed.
After some past refactors, it's true now that during layout there's
at least one text span, which is ensured by the span normalization.
This refactor simplifies code.
This refactor adds positions to all layout boxes, not only texts.
Positions for bullets and drawings are used only for obtaining
information about their location relative to other layout boxes,
so that searching and other various operations on boxes are easier.
Parsing and loading the definitions from an DoAbc/DoAbc2 tag
is visible to ActionScript - any definitions will become accessible,
and the script initializer will be run when accessing any of those
definitions.
We now delay the actual parsing/loading traits from DoAbc2 tags.
This is run before we process any SymbolClass tags, and only runs
the first time that we execute a frame.
This also fixes an issue where we would incorrectly produce a
`VerifyError` during preloading when trying to load a superclass
for a `Class` for a tag in a future frame. That frame might require
other class definitions to be populated first (e.g. by a `Loader`
in the first frame).