Commit Graph

12022 Commits

Author SHA1 Message Date
Kamil Jarosz 636011e95e tests: Add focus_highlight_avm1_button test
This test verifies how the highlight behaves for AVM1 buttons.
2024-05-10 23:52:01 +02:00
Kamil Jarosz b1b7ccfbd2 avm1: Highlight buttons using their hit bounds
Buttons are always highlighted using their hit bounds.
I guess it does have some sense to it, because their bounds
usually change on hover (children are swapped out),
which would cause the automatic tab order to change during tabbing.
That could potentially create a loop in the tab ordering
(soft locking the tab).
2024-05-10 23:52:01 +02:00
Kamil Jarosz 1e5439ab68 core: Add InteractiveObject.highlight_bounds() method
This method returns the world bounds of
the focus highlight for the interactive object.
2024-05-10 23:52:01 +02:00
Kamil Jarosz b4cbac6964 tests: Add button_keypress_vs_press test
This test ensures that button key press events take precedence
over pressing focused buttons with keyboard.
2024-05-10 22:42:03 +02:00
Kamil Jarosz df5e5e6035 tests: Add focus_keyboard_press test
This test verifies the behavior of pressing buttons with a keyboard.
2024-05-10 22:42:03 +02:00
Kamil Jarosz da9c9527e5 core: Allow pressing buttons with keyboard
This patch allows the keyboard to be used (Enter/Space) to press buttons.
2024-05-10 22:42:03 +02:00
Kamil Jarosz 18d9035685 core: Fire button event handlers only when highlight is active
It seems that button event handlers not only require focus to be fired,
but also an active highlight.
2024-05-10 22:42:03 +02:00
Kamil Jarosz 97a454cc36 core: Refactor a common condition to should_fire_button_event_handlers
This condition is identical for buttons and movie clips.
2024-05-10 22:42:03 +02:00
Kamil Jarosz bfb7e57277 debug_ui: Improve highlight display, add re-focus button
Since highlight has 3 states now, it's better represented by
describing the state instead of having a checkbox.
A re-focus button has been added to compensate for the fact
that the highlight cannot be automatically enabled anymore.
2024-05-10 22:42:03 +02:00
Kamil Jarosz df714d35bd core: Differentiate between active and visible highlight
Some button events (e.g. KeyUp/KeyDown) seem to require a state when
the highlight is not visible, but is active (i.e. a focus is selected).
That is why this patch introduces a third possible state of
the highlight: ActiveHidden.
2024-05-10 22:42:03 +02:00
Nathan Adams e31bba081e frontend-utils: Move player_options up from bundle 2024-05-10 19:51:37 +02:00
Nathan Adams 58a0f03bdf desktop: default_player_options -> default_launch_options 2024-05-10 19:51:37 +02:00
Nathan Adams 313ee5dd27 frontend-utils: Extracted out a PlayerOptions struct from desktop 2024-05-10 19:51:37 +02:00
Nathan Adams f748dd747d desktop: Made upgrade_to_https Option 2024-05-10 19:51:37 +02:00
Nathan Adams 1771e09e5e desktop: Made dummy_external_interface Option 2024-05-10 19:51:37 +02:00
Nathan Adams 34ec60aaa2 desktop: Made player_runtime Option and added to Open Advanced menu 2024-05-10 19:51:37 +02:00
Nathan Adams d3b3119c9d desktop: Made player_version Option 2024-05-10 19:51:37 +02:00
Nathan Adams 09e5339fab desktop: Made letterbox Option 2024-05-10 19:51:37 +02:00
Nathan Adams 446f567e87 desktop: Made load_behavior Option 2024-05-10 19:51:37 +02:00
Nathan Adams 230c895c92 desktop: Made scale and force_scale Option 2024-05-10 19:51:37 +02:00
Nathan Adams 55161f431c desktop: Made align and force_align Option 2024-05-10 19:51:37 +02:00
Nathan Adams 22a2bf56a2 desktop: Made quality Option 2024-05-10 19:51:37 +02:00
Nathan Adams 86c2015524 desktop: Made tcp_connections Option 2024-05-10 19:51:37 +02:00
Nathan Adams 9a74da2782 desktop: Made max_execution_duration Option<Duration>, where None is infinite 2024-05-10 19:51:37 +02:00
Nathan Adams 34c994a28f desktop: Made OptionalUrlField an OptionalField<UrlField> 2024-05-10 19:51:37 +02:00
Nathan Adams 9d6d945ca4 desktop: Rename PlayerOptions to LaunchOptions 2024-05-10 19:51:37 +02:00
TÖRÖK Attila 11c1120364 core: Invalidate cached bitmap on every newly decoded video frame
Not just when seeking manually. And request rendering to be sure.
2024-05-10 09:56:47 +02:00
Lord-McSweeney 8eaede1c2c avm2: Try to speed up domain memory ops 2024-05-09 16:41:12 -07:00
Lord-McSweeney 8ab19054aa avm2: Create bad branch errors lazily in verifier 2024-05-09 16:41:12 -07:00
Lord-McSweeney 4df7722aab avm2: Add fast path for setting array property 2024-05-09 16:41:12 -07:00
Crowdin Bot 6d89f657f8 chore: Update translations from Crowdin 2024-05-10 00:49:55 +02:00
Kamil Jarosz ea3ac098dd tests: Add avm1/button_key_events_special test
This test verifies the behavior of button events when
special characters are pressed.
2024-05-09 21:13:13 +02:00
Kamil Jarosz ed037214b1 core: Always fire KeyPress after KeyDown for buttons
Button events are actually handled twofold:
1. KeyPress for printable characters is handled on TextInput,
2. KeyPress for special characters (e.g. enter, arrows)
   is handled on KeyDown.

Before this patch, KeyPress was fired too early, so that for
special characters (2) it fired BEFORE KeyDown.
This was not a problem for printable characters, as they
fired on TextInput, which always fired separately after KeyDown.

This patch ensures that KeyPress is fired always in the proper order.
2024-05-09 21:13:13 +02:00
Kamil Jarosz fb2d8222eb tests: Add avm1/button_keypress_vs_textinput test
This test ensures that button key press events take precedence
over text input.
2024-05-09 21:13:13 +02:00
Kamil Jarosz 5541daa105 debug_ui: Add interactive tab order list 2024-05-09 20:57:53 +02:00
Kamil Jarosz baa87ff016 core: Add FocusTracker::tab_order method
This method returns the current tab order as a list of objects.
2024-05-09 20:57:53 +02:00
Kamil Jarosz ccf6b3edb5 debug_ui: Add possibility to clear current focus 2024-05-09 20:57:53 +02:00
Kamil Jarosz ab62b740a7 debug_ui: Use open_display_object_button for focus 2024-05-09 20:57:53 +02:00
sleepycatcoding 18f86634a4 frontend-utils: Do not panic when recent limit is zero and file is empty 2024-05-09 19:55:45 +03:00
Kamil Jarosz 4e39598da4 debug_ui: Exclude hidden objects properly when searching
The option "Include Hidden" was not working properly,
as it did not exclude all hidden objects when disabled.
An object is hidden also when its ancestor is not visible.
2024-05-09 08:12:59 -07:00
sleepycatcoding 059abb17ce desktop: Add a way to clear recently played files 2024-05-09 11:10:44 +02:00
Crowdin Bot 4422445f6a chore: Update translations from Crowdin 2024-05-09 10:36:21 +02:00
Kamil Jarosz cc3316188a tests: Add focus_highlight_move test
This test verifies the behavior of focus hightlight when the
focused element is transformed; additionally, it verifies how
the active highlight behaves when _focusrect is set to false.
2024-05-09 00:40:25 +02:00
Kamil Jarosz ece156e478 core: Use draw_rect_outline for focus highlight
This ensures that highlight does not become outdated
(e.g. when the highlighted content moves).
Additionally, it makes the highlight have 3px independently of zoom.
2024-05-09 00:40:25 +02:00
Kamil Jarosz 07bfa0c3e2 core: Use draw_rect_outline for debug rects
This improves debug rect rendering so that debug rects
do not have missing corners as before.
2024-05-09 00:40:25 +02:00
Kamil Jarosz eabf76dae8 core: Add RenderContext::draw_rect_outline
This method may be used to efficiently draw a simple rectangle outline
for debug rects and focus rects.
2024-05-09 00:40:25 +02:00
Kamil Jarosz b99bdadb8f render: Improve performance of round_to_i32
This patch improves performance of matrix::round_to_i32()
by using f32::round_ties_even(), which has been stable
since 1.77.0, instead of a custom algorithm.
2024-05-08 22:16:40 +02:00
Kamil Jarosz 6ad4bc4999 render: Add tests for round_to_i32 2024-05-08 22:16:40 +02:00
Kamil Jarosz bc4ed4c5a1 core: Improve performance of round_to_even
This patch improves performance of ecma_conversions::round_to_even():
1. by using f64::round_ties_even(), which has been stable
   since 1.77.0, instead of a custom algorithm; and
2. by removing an unnecessary comparison to i32::MIN,
   as casting a float to an integer automatically saturates
   values smaller than the minimum integer value to the minimum
   value of the integer type.
2024-05-08 22:16:40 +02:00
Kamil Jarosz 8eaf844cdc core: Add tests for round_to_even 2024-05-08 22:16:40 +02:00