Commit Graph

6879 Commits

Author SHA1 Message Date
Adrian Wielgosik fd281cc715 avm2: Add IS_QNAME flag to Multiname, improve XML name matching 2024-04-22 22:08:40 +02:00
dependabot[bot] c6bfaf8fae build(deps): bump the cargo-minor group with 4 updates
Bumps the cargo-minor group with 4 updates: [thiserror](https://github.com/dtolnay/thiserror), [fluent-templates](https://github.com/XAMPPRocky/fluent-templates), [toml_edit](https://github.com/toml-rs/toml) and [reqwest](https://github.com/seanmonstar/reqwest).


Updates `thiserror` from 1.0.58 to 1.0.59
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.58...1.0.59)

Updates `fluent-templates` from 0.9.2 to 0.9.4
- [Release notes](https://github.com/XAMPPRocky/fluent-templates/releases)
- [Changelog](https://github.com/XAMPPRocky/fluent-templates/blob/master/CHANGELOG.md)
- [Commits](https://github.com/XAMPPRocky/fluent-templates/compare/fluent-templates-v0.9.2...fluent-templates-v0.9.4)

Updates `toml_edit` from 0.22.9 to 0.22.12
- [Commits](https://github.com/toml-rs/toml/compare/v0.22.9...v0.22.12)

Updates `reqwest` from 0.12.3 to 0.12.4
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.3...v0.12.4)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: fluent-templates
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: toml_edit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 20:33:27 +02:00
Lord-McSweeney 15c076fe0c avm2: Remove "namespace not matching" message
This was getting spammed after #16069
2024-04-21 16:12:54 -07:00
Kamil Jarosz b9e9a3e1f2 core: Dispatch rollOut/rollOver events on focus change and Tab
When focus changes, rollOut/rollOver events should be dispatched.
This includes onRollOut/onRollOver handlers, but also button actions.
2024-04-22 00:53:20 +02:00
Kamil Jarosz e20341f0a3 core: Skip updating mouse hover when not necessary
Since objects may be hovered using Tab, mouse hover update cannot happen
every time, because it would always reset the hover set by Tab.

This is why mouse hover is skipped when the following are true:
1. the mouse has not moved,
2. no mouse button has been pressed,
3. there was a hover,
4. the hovered object did not disappear.
2024-04-22 00:53:20 +02:00
Kamil Jarosz 9987519608 core: Make FocusTracker operate on InteractiveObjects
Originally, FocusTracker operated on DisplayObjects. However, in both
AVM1 and AVM2, all objects that are focusable are InteractiveObjects.
Switching FocusTracker to operate on InteractiveObjects simplifies code
in the long run.
2024-04-22 00:53:20 +02:00
Kamil Jarosz f94a31c5c2 core: Add FocusTracker.get_as_edit_text method
This is a utility method which simplifies getting the current focus
as an EditText object, which is being done frequently throughout Ruffle.
2024-04-22 00:53:20 +02:00
Kamil Jarosz 31c9be3a35 core: Ensure all changes made to UpdateContext are applied
UpdateContext.mouse_over_object and UpdateContext.mouse_down_object
were treated differently from other properties. Changes made to them
were required to be applied manually after using the context.
However, when reborrowing the context, all changes made to these
properties were dropped, as they were not applied after reborrow.
Applying them after reborrow would be difficult (RAII, concurrency
problems), that's why they were replaced with mutable references.

MouseData struct was introduced to make the code more readable and
adhere to the convention of UpdateContext to contain mutable references
to higher level objects.
2024-04-22 00:53:20 +02:00
Kamil Jarosz e28712f111 avm1: Use Avm1::run_stack_frame_for_method for focus handlers
Using Avm1::run_stack_frame_for_method for calling focus handlers
simplifies code and prevents duplication.
2024-04-22 00:53:20 +02:00
Kamil Jarosz 47758e1fb3 core: Make objects focusable by default
Since is_focusable has been moved to InteractiveObject,
it may now return true by default, because non-interactive objects
do not implement this method anymore.
2024-04-22 00:53:20 +02:00
Kamil Jarosz 5173fa4118 core: Move focus-related methods to InteractiveObject
Only interactive objects may be focusable, so keeping these methods
in all display objects makes matters more difficult, as they also
has to be implemented for non-interactive objects.

Moving these to InteractiveObject simplifies code in the long run.
2024-04-22 00:53:20 +02:00
Lord-McSweeney ca4da9e5ee avm2: Fix regression from classes not being registered in order from the constant pool 2024-04-21 14:27:16 -07:00
Lord-McSweeney 8a4946fa03 avm2: Store Class instead of QName as superclass of Class 2024-04-20 15:23:44 -07:00
turicfr 3f5582ed94 avm1: Correct `getBounds` properties order
This affects the order of the properties when enumerating the
returned object (via `Enumerate2` etc.)
2024-04-20 21:58:32 +02:00
jarca0123 7e349d9190 avm2: Add support for sparse arrays 2024-04-20 21:41:33 +02:00
TÖRÖK Attila 3ca7cc821e nit: Silence nightly `dead_code` lint 2024-04-20 17:39:54 +02:00
TÖRÖK Attila b8ec3a8089 nit: Silence nightly `clippy::legacy_numeric_constants` lint 2024-04-20 17:39:54 +02:00
Lord-McSweeney 955d03885e avm2: Remove outdated TODO comments 2024-04-19 15:03:53 -07:00
Tom Schuster cdf587c5a5 avm2: Fix two bugs that caused wrong query parameters with navigateToURL 2024-04-19 18:56:25 +02:00
dependabot[bot] 5c1fcb9f26 build(deps): bump the cargo-minor group with 4 updates
Bumps the cargo-minor group with 4 updates: [serde](https://github.com/serde-rs/serde), [serde_json](https://github.com/serde-rs/json), [syn](https://github.com/dtolnay/syn) and [proc-macro2](https://github.com/dtolnay/proc-macro2).


Updates `serde` from 1.0.197 to 1.0.198
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.197...v1.0.198)

Updates `serde_json` from 1.0.115 to 1.0.116
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.115...v1.0.116)

Updates `syn` from 2.0.59 to 2.0.60
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.59...2.0.60)

Updates `proc-macro2` from 1.0.80 to 1.0.81
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.80...1.0.81)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: proc-macro2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-18 17:30:02 +02:00
Adrian Wielgosik a69b80b4bb avm2: Allow splice() on a Vector with fixed=true 2024-04-18 00:56:22 +02:00
Aaron Hill 899fe54477 debug_ui: Show mouseEnabled/mouseChildren/doubleClickEnabled
This helps with debugging mouse-pick bugs
2024-04-17 14:36:34 -04:00
StevenMia 899c0bb157 chore: fix some typos in comments
Signed-off-by: StevenMia <flite@foxmail.com>
2024-04-16 09:31:00 +02:00
dependabot[bot] d3cc9d5fa5 build(deps): bump the cargo-minor group with 11 updates
Bumps the cargo-minor group with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.81` | `1.0.82` |
| [async-channel](https://github.com/smol-rs/async-channel) | `2.2.0` | `2.2.1` |
| [chrono](https://github.com/chronotope/chrono) | `0.4.37` | `0.4.38` |
| [encoding_rs](https://github.com/hsivonen/encoding_rs) | `0.8.33` | `0.8.34` |
| [fluent-templates](https://github.com/XAMPPRocky/fluent-templates) | `0.9.1` | `0.9.2` |
| [either](https://github.com/rayon-rs/either) | `1.10.0` | `1.11.0` |
| [quote](https://github.com/dtolnay/quote) | `1.0.35` | `1.0.36` |
| [syn](https://github.com/dtolnay/syn) | `2.0.58` | `2.0.59` |
| [proc-macro2](https://github.com/dtolnay/proc-macro2) | `1.0.79` | `1.0.80` |
| [webbrowser](https://github.com/amodm/webbrowser-rs) | `0.8.14` | `0.8.15` |
| [libtest-mimic](https://github.com/LukasKalbertodt/libtest-mimic) | `0.7.0` | `0.7.2` |


Updates `anyhow` from 1.0.81 to 1.0.82
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.81...1.0.82)

Updates `async-channel` from 2.2.0 to 2.2.1
- [Release notes](https://github.com/smol-rs/async-channel/releases)
- [Changelog](https://github.com/smol-rs/async-channel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/smol-rs/async-channel/compare/v2.2.0...v2.2.1)

Updates `chrono` from 0.4.37 to 0.4.38
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.37...v0.4.38)

Updates `encoding_rs` from 0.8.33 to 0.8.34
- [Commits](https://github.com/hsivonen/encoding_rs/compare/v0.8.33...v0.8.34)

Updates `fluent-templates` from 0.9.1 to 0.9.2
- [Release notes](https://github.com/XAMPPRocky/fluent-templates/releases)
- [Changelog](https://github.com/XAMPPRocky/fluent-templates/blob/master/CHANGELOG.md)
- [Commits](https://github.com/XAMPPRocky/fluent-templates/compare/fluent-templates-v0.9.1...fluent-templates-v0.9.2)

Updates `either` from 1.10.0 to 1.11.0
- [Commits](https://github.com/rayon-rs/either/compare/1.10.0...1.11.0)

Updates `quote` from 1.0.35 to 1.0.36
- [Release notes](https://github.com/dtolnay/quote/releases)
- [Commits](https://github.com/dtolnay/quote/compare/1.0.35...1.0.36)

Updates `syn` from 2.0.58 to 2.0.59
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.58...2.0.59)

Updates `proc-macro2` from 1.0.79 to 1.0.80
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.79...1.0.80)

Updates `webbrowser` from 0.8.14 to 0.8.15
- [Release notes](https://github.com/amodm/webbrowser-rs/releases)
- [Changelog](https://github.com/amodm/webbrowser-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amodm/webbrowser-rs/compare/v0.8.14...v0.8.15)

Updates `libtest-mimic` from 0.7.0 to 0.7.2
- [Release notes](https://github.com/LukasKalbertodt/libtest-mimic/releases)
- [Changelog](https://github.com/LukasKalbertodt/libtest-mimic/blob/master/CHANGELOG.md)
- [Commits](https://github.com/LukasKalbertodt/libtest-mimic/commits)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: async-channel
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: chrono
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: encoding_rs
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: fluent-templates
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: either
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
- dependency-name: quote
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: proc-macro2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: webbrowser
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: libtest-mimic
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-15 23:34:51 +02:00
Lord-McSweeney 1f4eebfd8d avm2: Add SetSlotNoCoerce and ReturnValueNoCoerce ops for SetSlot and ReturnValue without coercion when type is guaranteed to be not coerced 2024-04-14 22:10:37 -07:00
Lord-McSweeney daaf274245 avm2: Fill in all ops in optimizer 2024-04-14 22:10:37 -07:00
Lord-McSweeney efe878211a avm2: Pre-pool multinames for several ops
`CallPropLex`, `GetSuper`, `SetSuper`, `CallSuper`, `CallSuperVoid`, `GetDescendants`
2024-04-14 22:10:37 -07:00
Lord-McSweeney a7021f4fee avm2: Use already stored param types in optimizer 2024-04-14 22:10:37 -07:00
Lord-McSweeney e05f405888 avm2: Remove unneeded zero code length check in `run_actions` 2024-04-14 22:10:37 -07:00
Lord-McSweeney 9dcf0a7d70 avm2: Resolve function argument types once when calling function for the first time 2024-04-14 22:10:37 -07:00
Lord-McSweeney 9870754b5e avm2: Support optimization of `CallPropVoid` and virtual setters
This requires adding a custom field to the `CallMethod` op
2024-04-14 22:10:37 -07:00
Adrian Wielgosik 9d2664f752 wstr: Fix parsing of '+' 2024-04-14 13:24:42 +02:00
Nick 752ced391c
avm1: use correct coordinates for hitTest (#15894) 2024-04-09 17:11:21 +00:00
Nathan Adams 62867729de core: Removed now-unused Player::swf() method 2024-04-09 00:01:59 +02:00
dependabot[bot] ae10b76431 build(deps): bump the cargo-minor group with 6 updates
Bumps the cargo-minor group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [image](https://github.com/image-rs/image) | `0.25.0` | `0.25.1` |
| [downcast-rs](https://github.com/marcianx/downcast-rs) | `1.2.0` | `1.2.1` |
| [regress](https://github.com/ridiculousfish/regress) | `0.9.0` | `0.9.1` |
| [syn](https://github.com/dtolnay/syn) | `2.0.55` | `2.0.58` |
| [webbrowser](https://github.com/amodm/webbrowser-rs) | `0.8.13` | `0.8.14` |
| [getrandom](https://github.com/rust-random/getrandom) | `0.2.12` | `0.2.14` |


Updates `image` from 0.25.0 to 0.25.1
- [Changelog](https://github.com/image-rs/image/blob/main/CHANGES.md)
- [Commits](https://github.com/image-rs/image/compare/v0.25.0...v0.25.1)

Updates `downcast-rs` from 1.2.0 to 1.2.1
- [Changelog](https://github.com/marcianx/downcast-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marcianx/downcast-rs/compare/v1.2.0...v1.2.1)

Updates `regress` from 0.9.0 to 0.9.1
- [Release notes](https://github.com/ridiculousfish/regress/releases)
- [Commits](https://github.com/ridiculousfish/regress/compare/v0.9.0...v0.9.1)

Updates `syn` from 2.0.55 to 2.0.58
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.55...2.0.58)

Updates `webbrowser` from 0.8.13 to 0.8.14
- [Release notes](https://github.com/amodm/webbrowser-rs/releases)
- [Changelog](https://github.com/amodm/webbrowser-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amodm/webbrowser-rs/compare/v0.8.13...v0.8.14)

Updates `getrandom` from 0.2.12 to 0.2.14
- [Changelog](https://github.com/rust-random/getrandom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/getrandom/compare/v0.2.12...v0.2.14)

---
updated-dependencies:
- dependency-name: image
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: downcast-rs
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: regress
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: webbrowser
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: getrandom
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-08 23:44:16 +02:00
Kamil Jarosz 741c53994c core: Add focus tracker to debug UI 2024-04-08 23:19:29 +02:00
Kamil Jarosz 497eaba6c5 core: Add DisplayObject.is_highlightable method
This is added for convenience so that it's not required
to cast an object to InteractiveObject when checking for a highlight.

This also gets rid of InteractiveObject.focus_rect_supported,
as `is_highlightable` may be now overridden.
2024-04-08 23:19:29 +02:00
Kamil Jarosz 43266f2d5d avm1: Fix onKeyUp and onKeyDown events for Button
These two events were not firing properly when a key was pressed
and the button had focus.
2024-04-08 22:16:50 +02:00
Kamil Jarosz e57b371a3d core: Add support for NumLock
This patch adds support for NumLock, which was missing.
Now NumLock (144) may be used as a parameter in methods
from the Key class.
2024-04-08 20:14:07 +02:00
Lord-McSweeney c1b6aa48a2 avm2: Fix unknown jump sources mixing with known jump sources 2024-04-05 00:34:50 +02:00
Lord-McSweeney 1727b946c4 avm2: Ensure exception targets are noted as possible jump targets 2024-04-05 00:34:50 +02:00
Lord-McSweeney 1a9ea0c9b1 avm2: Merge properly when the target is right after a block-terminating op 2024-04-05 00:34:50 +02:00
Lord-McSweeney fbef4c342e avm2: Add basic state merging for forward jumps to optimizer 2024-04-05 00:34:50 +02:00
Kamil Jarosz e564803ec0 core: Ignore non-tabbable objects from tab ordering
These objects include:
* invisible objects along with their children,
* non-editable text fields.

The method `is_tab_enabled` is renamed to `is_tabbable`, as it no
longer represents the `tabEnabled` property value, but also
incorporates other logic.
2024-04-04 22:53:19 +02:00
dependabot[bot] 163aa9edf6 build(deps): bump web-time from 0.2.4 to 1.1.0
Bumps [web-time](https://github.com/daxpedda/web-time) from 0.2.4 to 1.1.0.
- [Release notes](https://github.com/daxpedda/web-time/releases)
- [Changelog](https://github.com/daxpedda/web-time/blob/main/CHANGELOG.md)
- [Commits](https://github.com/daxpedda/web-time/compare/v0.2.4...v1.1.0)

---
updated-dependencies:
- dependency-name: web-time
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-04 21:41:04 +02:00
Nathan Adams b7c9c870bb chore: Use workspace version for walkdir 2024-04-04 17:29:00 +02:00
Nathan Adams 19c914c5a8 chore: Use workspace version for url 2024-04-04 17:29:00 +02:00
Nathan Adams 45a2ab69c0 chore: Use workspace version for thiserror 2024-04-04 17:29:00 +02:00
Nathan Adams 9d665ce448 chore: Use workspace version for serde 2024-04-04 17:29:00 +02:00
Nathan Adams 80758cbaeb chore: Use workspace version for num-traits 2024-04-04 17:29:00 +02:00
Nathan Adams a7404e7506 chore: Use workspace version for num-derive 2024-04-04 17:29:00 +02:00
Nathan Adams d8fec1cabc chore: Use workspace version for image 2024-04-04 17:29:00 +02:00
Nathan Adams 2036d85a95 chore: Use workspace version for futures 2024-04-04 17:29:00 +02:00
Nathan Adams 2bd1ef47b7 chore: Use workspace version for flate2 2024-04-04 17:29:00 +02:00
Nathan Adams c3711e3953 chore: Use workspace version for enum-map 2024-04-04 17:29:00 +02:00
Nathan Adams 6cca9bb3b7 chore: Use workspace version for clap 2024-04-04 17:29:00 +02:00
Nathan Adams 26df7d78c4 chore: Use workspace version for chrono 2024-04-04 17:29:00 +02:00
Nathan Adams 937664e737 chore: Use workspace version for bytemuck 2024-04-04 17:29:00 +02:00
Nathan Adams 4e3cd75c30 chore: Use workspace version for bitflags 2024-04-04 17:29:00 +02:00
Nathan Adams 8a390163d6 chore: Use workspace version for async-channel 2024-04-04 17:29:00 +02:00
Kamil Jarosz 53f49eb480 avm2: Update comments related to stageFocusRect
Although full AVM2 support is not there yet, stageFocusRect is
not ignored anymore.
2024-04-04 10:58:42 +02:00
Kamil Jarosz 84d24fdd50 core: Use focus_rect to control highlight rendering
The field `focus_rect` is available for each interactive object,
and its value is used to control highlight rendering.
The notable exception is the TextField, which despite having a focus,
is incapable of rendering a highlight.
That is why the `focus_rect_supported` field has been added
to control this behavior.
2024-04-04 10:58:42 +02:00
Kamil Jarosz 76b8b5e438 avm1: Add support for _focusrect property
The property `_focusrect` allows specifying whether an object should be
highlighted by keyboard focus. For SWF <=5 that was possible globally,
and since SWF 6 the global option only has been the default,
which may be overridden using a local `_focusrect` property.
2024-04-04 10:58:42 +02:00
Kamil Jarosz da9ee141dc avm1: Mark applicable Object properties as SWF6+
Some of the Object properties are available only in SWF6+.
2024-04-04 10:58:42 +02:00
sleepycatcoding 92f437ec15 desktop: Add storage backend preference 2024-04-03 23:44:27 +02:00
sleepycatcoding e1f9b5e5df desktop: add UI for bookmarks 2024-04-03 22:20:55 +02:00
TÖRÖK Attila 9822e96b41 chore: Bump `egui` to `v0.27.2` 2024-04-03 08:01:53 +02:00
Kamil Jarosz d4b74db133 core: Default value logic for MovieClip.tabEnabled
The default value of `MovieClip.tabEnabled` is neither trivial
nor well-documented. This patch implements the logic behind
the default value of `MovieClip.tabEnabled` and covers it with tests.
2024-04-02 00:31:34 +02:00
Kamil Jarosz 6d08d2afb0 core: Make the default value lazy in get_avm1_boolean_property 2024-04-02 00:31:34 +02:00
Kamil Jarosz 95983bf4f3 core: Render yellow highlight on keyboard focus
This patch implements rendering of the yellow rectangle around
a focused element after pressing Tab. Focus tracker which is responsible
for keeping track of the current focus is now also responsible
for keeping track of the highlight and rendering thereof.
2024-04-01 23:38:59 +02:00
Kamil Jarosz 1a250f0144 core: Move FocusTracker to Stage 2024-04-01 23:38:59 +02:00
Kamil Jarosz b12bf31c6e core: Improve order of automatic tab ordering
This patch improves the order of automatic tab ordering,
and makes it behave more like in FP.
The order after this patch is far from being exactly
the same as in FP, but is close enough.
2024-04-01 22:48:59 +02:00
Tom Schuster 1552059c9f avm2: Stub DisplayObject.metaData 2024-04-01 12:31:59 +02:00
Kamil Jarosz 1883daff22 avm1: Support `MovieClip.tabChildren`
The property `MovieClip.tabChildren` allows changing the behavior of
tab ordering hierarchically. When set to `false`, it excludes the whole
subtree represented by the movie clip from tab ordering.
2024-03-30 00:15:45 +01:00
Kamil Jarosz 9ba7bb8629 core: Reverse tab order on Shift+Tab
When pressing Shift+Tab or Ctrl+Shift+Tab,
elements are tabbed in reverse.
2024-03-29 23:20:15 +01:00
Kamil Jarosz 208aae78ee core: Use either crate instead of a custom implementation 2024-03-29 23:20:15 +01:00
TÖRÖK Attila a59ec413ad chore: Update `egui` to `v0.27.1` 2024-03-29 14:46:25 +01:00
TÖRÖK Attila 5b4f808769 chore: Update `egui` to `v0.27.0` 2024-03-29 10:02:52 +01:00
Kamil Jarosz 9d18bcdd06 avm1: Add support for tabEnabled and tabIndex 2024-03-27 00:40:24 +01:00
Kamil Jarosz c7b16f4642 core: Add basic support for Tab key behavior
The Tab key is used to cycle through focusable elements in stage.
It supports two tab orderings: automatic and custom.
This patch adds basic support for this behavior.
2024-03-27 00:40:24 +01:00
Kamil Jarosz e6e23fc758 core: Simplify handling clip events in Player 2024-03-27 00:40:24 +01:00
Lord-McSweeney 1a9a36c1ed avm2: Properly push coerced value back to stack in optimizer for Coerce op 2024-03-26 10:43:13 -07:00
renovate[bot] 9dfc6dc224 fix(deps): update rust dependencies 2024-03-26 13:56:59 +01:00
sleepycatcoding 1b41abf3a3 chore: Remove unused dependencies 2024-03-25 17:45:26 +01:00
renovate[bot] 98cbe9cf31 fix(deps): update rust dependencies 2024-03-25 02:47:32 +01:00
Crowdin Bot 9793e3968d chore: Update translations from Crowdin 2024-03-24 22:55:51 +01:00
Tom Schuster 1d4fd1575b avm2: Make URLStream fire the HTTP_STATUS event 2024-03-24 12:42:12 +01:00
Tom Schuster 403f6eb511 avm2: Add URLStream.connected 2024-03-24 12:42:12 +01:00
Lord-McSweeney 0adac8f69d core: Remove `Collect` from `Color` and `DirtyState` as it was unnecessary 2024-03-23 21:18:02 -07:00
Lord-McSweeney 530319ce93 avm2: Add many more ops to optimizer 2024-03-23 20:17:41 -07:00
Lord-McSweeney 9f44281a52 avm2: Remove unnecessary range checks on local-modifying ops in optimizer 2024-03-23 20:17:41 -07:00
Lord-McSweeney dec9f07f5f avm2: Better optimizer handling for `FindProperty` and `FindPropStrict` 2024-03-23 20:17:41 -07:00
Lord-McSweeney 2646fcf148 avm2: Add more domain memory ops to optimizer 2024-03-23 20:17:41 -07:00
Lord-McSweeney 3c39acc2ae avm2: Increase number of actions before timeout check from 2000 to 64000 2024-03-23 20:17:41 -07:00
Lord-McSweeney 407314686e avm2: Verify `getouterscope` op 2024-03-23 20:17:41 -07:00
TÖRÖK Attila 156e4eb2ed core: Make sure that streams progress even with many small-dt ticks 2024-03-24 01:07:10 +01:00
Adrian Wielgosik 08157a056e build: Fix redundant import warnings 2024-03-23 19:23:18 +01:00
Lord-McSweeney ab254c93c6 avm2: Activation class is now guaranteed in `op_new_activation` 2024-03-22 18:55:23 -07:00
Lord-McSweeney af19d6f385 avm2: Fix `newactivation` in script initializer
This works the same as in a normal function
2024-03-22 18:55:23 -07:00
renovate[bot] d70560cb82 fix(deps): update rust dependencies 2024-03-22 11:10:59 +01:00