Kamil Jarosz
02091e590d
avm1: Move tab_index to InteractiveObject and make it i32
...
The i32/u32 discrepancy is only a data presentation issue,
as the value is treated as i32 in every case.
2024-04-29 21:54:06 +02:00
Kamil Jarosz
712ab7fce1
tests: Update avm1/tab_ordering_properties
...
Add a case of a non-editable text field.
2024-04-29 21:54:06 +02:00
Kamil Jarosz
0c03aacb59
tests: Update avm1/tab_ordering_tabbable
...
Add a case of a dynamic text field with tab enabled.
2024-04-29 21:54:06 +02:00
Kamil Jarosz
86c0a30166
tests: Add textline_inapplicable_properties test
...
This test verifies the behavior of inapplicable
properties of `TextLine`.
2024-04-29 21:18:08 +02:00
Kamil Jarosz
e7eaf2a640
avm2: Override inapplicable properties in TextLine
...
Some inherited properties of `TextLine` are inapplicable.
They always return the default value and throw an error when set.
2024-04-29 21:18:08 +02:00
sleepycatcoding
7eae6ad90b
desktop: Add translatable string for recents menu entry
2024-04-29 20:46:42 +02:00
sleepycatcoding
15a0d18b16
desktop: Filter out invalid and unavailable recent entries
2024-04-29 20:46:42 +02:00
sleepycatcoding
c5dade88dd
desktop: Separate menu bar into a module
2024-04-29 20:46:42 +02:00
sleepycatcoding
c37677e27a
desktop: Move about window into dialogs
2024-04-29 20:46:42 +02:00
sleepycatcoding
e21f7c1aab
desktop: Move VolumeControls into dialogs
2024-04-29 20:46:42 +02:00
sleepycatcoding
eb9c95c660
desktop: Separate dialogs into a separate struct
2024-04-29 20:46:42 +02:00
sleepycatcoding
9db308ddf8
desktop: Make recent limit user configurable
2024-04-29 20:46:42 +02:00
sleepycatcoding
a33c18b309
desktop: Basic recents menu
2024-04-29 20:46:42 +02:00
sleepycatcoding
7c80091488
frontend-utils: Initial recents reader/writer
2024-04-29 20:46:42 +02:00
dependabot[bot]
3667d1eb74
build(deps): bump the cargo-minor group with 2 updates
...
Bumps the cargo-minor group with 2 updates: [flate2](https://github.com/rust-lang/flate2-rs ) and [serde](https://github.com/serde-rs/serde ).
Updates `flate2` from 1.0.28 to 1.0.29
- [Release notes](https://github.com/rust-lang/flate2-rs/releases )
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.0.28...1.0.29 )
Updates `serde` from 1.0.198 to 1.0.199
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.198...v1.0.199 )
---
updated-dependencies:
- dependency-name: flate2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 16:40:00 +02:00
Lord-McSweeney
b0443b3b5f
avm2: Simplify uses of `GcCell<'gc, Class<'gc>>`
2024-04-27 08:29:10 -07:00
sleepycatcoding
6203f99dd7
frontend-utils: Add integer parse methods
2024-04-27 01:04:40 +02:00
sleepycatcoding
de003e12e7
frontend-utils: Add warning capable casting methods
2024-04-27 01:04:40 +02:00
sleepycatcoding
c95d02339e
frontend-utils: Drop 'static bound from push_key
2024-04-27 01:04:40 +02:00
TÖRÖK Attila
4df57bb122
ci: Drop the `mathiasvr/command-output` action from the `release_amo` workflow
2024-04-26 20:41:23 +02:00
Adrian Wielgosik
868ab45c98
avm2: Add Stage.softKeyboardRect
2024-04-24 20:33:13 +02:00
Kamil Jarosz
f30c04e8b4
frontend-utils: Get rid of deadlocks in AsyncExecutor
...
3d04971a
was the first approach to eliminating deadlocks caused by
waking a task from another one. A task may also try to wake itself,
and that case was unfortunately not covered.
This patch rewrites the AsyncExecutor to use an async
channel for queuing tasks instead of a flag.
Using a flag required holding a lock for a task which was
problematic when a task needed to be awoken.
A flag also required doing a full search through tasks each poll,
which could be ineffective.
2024-04-24 01:02:23 +02:00
Kamil Jarosz
31d8d98a10
tests: Add focusrect_mouse_swf8 test
...
This test verifies the behavior of focus highlight when
mouse is moved and mouse buttons are clicked for SWF8.
2024-04-24 00:49:37 +02:00
Kamil Jarosz
a594d8d9ac
tests: Add focusrect_mouse_swf9 test
...
This test verifies the behavior of focus highlight when
mouse is moved and mouse buttons are clicked for SWF9.
2024-04-24 00:49:37 +02:00
Kamil Jarosz
953a741943
core: Update focus highlight reset logic for SWF9+
...
SWF versions 9 onwards reset the highlight only on
left mouse button down, whereas older versions also
reset it on other mouse events.
2024-04-24 00:49:37 +02:00
TÖRÖK Attila
4ec30928ab
chore: Run `cargo update`, excluding `tracy-client` duplication
2024-04-24 00:27:42 +02:00
dependabot[bot]
09d17e722b
build(deps): bump zip from 0.6.6 to 1.1.1
...
Bumps [zip](https://github.com/Pr0methean/zip ) from 0.6.6 to 1.1.1.
- [Changelog](https://github.com/Pr0methean/zip/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Pr0methean/zip/commits )
---
updated-dependencies:
- dependency-name: zip
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-04-23 23:47:26 +02:00
Kamil Jarosz
9bc5735d0d
tests: Add stage_properties2 test
2024-04-23 23:13:02 +02:00
Kamil Jarosz
83d5d18a20
avm2: Add missing overrides to Stage
...
Stage overrides some properties from its super classes.
Some of them are currently identical in Ruffle,
but in FP they are used for e.g. security checks.
2024-04-23 23:13:02 +02:00
Kamil Jarosz
f01cb99d1a
avm2: Remove unnecessary imports in AS
2024-04-23 23:13:02 +02:00
Kamil Jarosz
ccd2922973
avm2: Stub DisplayObjectContainer.textSnapshot
2024-04-23 23:13:02 +02:00
Kamil Jarosz
19cc8e5873
avm2: Add a stub for flash.text.TextSnapshot
2024-04-23 23:13:02 +02:00
TÖRÖK Attila
c288c7b710
chore: Bump locked `loom`, `generator`, `async-process`, and `async-signal` versions
...
This lets us drop the `windows` `v0.48.0`, `async-lock` `v2.8.0`,
and `event-listener` `v2.5.3` duplicated versions.
2024-04-23 20:14:13 +02:00
Adrian Wielgosik
09e932163b
xml: Add TODO comment in deepCopy()
2024-04-22 22:08:40 +02:00
Adrian Wielgosik
43f27b80ce
avm2: Also conditionally set IS_QNAME in 'new QName()'
2024-04-22 22:08:40 +02:00
Adrian Wielgosik
464ccb6eb6
avm2: Update comment for QName struct
2024-04-22 22:08:40 +02:00
Adrian Wielgosik
fd281cc715
avm2: Add IS_QNAME flag to Multiname, improve XML name matching
2024-04-22 22:08:40 +02:00
dependabot[bot]
d7b3a500d7
build(deps): bump the npm-minor group in /web with 11 updates
...
Bumps the npm-minor group in /web with 11 updates:
| Package | From | To |
| --- | --- | --- |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ) | `7.7.0` | `7.7.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) | `7.7.0` | `7.7.1` |
| [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-cli ) | `8.36.0` | `8.36.1` |
| [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-local-runner ) | `8.36.0` | `8.36.1` |
| [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-mocha-framework ) | `8.36.0` | `8.36.1` |
| [@wdio/spec-reporter](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-spec-reporter ) | `8.36.0` | `8.36.1` |
| [@wdio/static-server-service](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-static-server-service ) | `8.36.0` | `8.36.1` |
| [chromedriver](https://github.com/giggio/node-chromedriver ) | `123.0.3` | `123.0.4` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react ) | `18.2.78` | `18.2.79` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) | `5.2.8` | `5.2.10` |
| [webdriverio](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/webdriverio ) | `8.36.0` | `8.36.1` |
Updates `@typescript-eslint/eslint-plugin` from 7.7.0 to 7.7.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.7.1/packages/eslint-plugin )
Updates `@typescript-eslint/parser` from 7.7.0 to 7.7.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.7.1/packages/parser )
Updates `@wdio/cli` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-cli )
Updates `@wdio/local-runner` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-local-runner )
Updates `@wdio/mocha-framework` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-mocha-framework )
Updates `@wdio/spec-reporter` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-spec-reporter )
Updates `@wdio/static-server-service` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-static-server-service )
Updates `chromedriver` from 123.0.3 to 123.0.4
- [Commits](https://github.com/giggio/node-chromedriver/compare/123.0.3...123.0.4 )
Updates `@types/react` from 18.2.78 to 18.2.79
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react )
Updates `vite` from 5.2.8 to 5.2.10
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v5.2.10/packages/vite )
Updates `webdriverio` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/webdriverio )
---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@typescript-eslint/parser"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/cli"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/local-runner"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/mocha-framework"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/spec-reporter"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/static-server-service"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: chromedriver
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@types/react"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: vite
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: webdriverio
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 21:45:09 +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
sleepycatcoding
86b35145ec
frontend-utils: Unify warning format strings; add warning enum
...
This also lays the groundwork for translated warnings.
2024-04-22 14:20:50 +03: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
1f5d19971b
tests: Add avm1/tab_ordering_events_mouse test
...
This test verifies how the behavior of tabbing is integrated with
the mouse with respect to rollOut/rollOver events.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
f3c9a84058
tests: Add avm1/tab_ordering_events test
...
This test verifies events produced by various interactive objects
while tabbing.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
d4bab66979
tests: Update avm1/selection_handlers test
...
Extend this test to cover rollOut/rollOver events too.
2024-04-22 00:53:20 +02: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