Kamil Jarosz
ee5dce4c86
core: Use layout lines in screen_position_to_index
...
This refactor makes it possible for layout boxes in the same line to
have different extents, and it does not change the method's behavior.
2024-07-30 19:28:24 +02:00
Kamil Jarosz
0c1c16671b
desktop: Add theme option to preferences
2024-07-30 19:09:51 +02:00
Kamil Jarosz
4ad371da95
desktop: Add watcher for ThemePreference change
2024-07-30 19:09:51 +02:00
Kamil Jarosz
52067658f8
desktop: Add ThemePreference to preferences
2024-07-30 19:09:51 +02:00
Kamil Jarosz
54cc5fe107
desktop: Add ThemePreference enum
...
ThemePreference represents the user's preference over Ruffle's theme.
2024-07-30 19:09:51 +02:00
Kamil Jarosz
23c27420bd
desktop: Remove RuffleEvent::ThemeChanged
...
This event is no longer needed as theme is now changed synchronously.
2024-07-30 19:09:51 +02:00
Kamil Jarosz
9163de61b8
desktop: Add ThemeController
...
ThemeController is responsible for managing Ruffle's theme.
It takes into account the user preference, integrates with D-Bus and
handles platform-specific differences.
2024-07-30 19:09:51 +02:00
Kamil Jarosz
21d7746aec
desktop: Use Arc for Window
...
This allows sending Windows between threads.
2024-07-30 19:09:51 +02:00
Adrian Wielgosik
6f56016079
avm2: Support recursive Vector<Vector<T>> lookups
2024-07-30 18:45:45 +02:00
dependabot[bot]
6f4a9aeafb
build(deps-dev): bump stylelint in /web in the npm-minor group
...
Bumps the npm-minor group in /web with 1 update: [stylelint](https://github.com/stylelint/stylelint ).
Updates `stylelint` from 16.7.0 to 16.8.0
- [Release notes](https://github.com/stylelint/stylelint/releases )
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/stylelint/stylelint/compare/16.7.0...16.8.0 )
---
updated-dependencies:
- dependency-name: stylelint
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 23:43:52 +02:00
dependabot[bot]
e4c88c6b10
build(deps-dev): bump typescript-eslint in /web
...
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) from 8.0.0-alpha.57 to 8.0.0-alpha.58.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/HEAD/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: typescript-eslint
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 23:31:28 +02:00
dependabot[bot]
fef1cba495
build(deps): bump the cargo-minor group with 9 updates
...
Bumps the cargo-minor group with 9 updates:
| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap ) | `4.5.9` | `4.5.11` |
| [tokio](https://github.com/tokio-rs/tokio ) | `1.38.1` | `1.39.2` |
| [quick-xml](https://github.com/tafia/quick-xml ) | `0.36.0` | `0.36.1` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.120` | `1.0.121` |
| [enumset](https://github.com/Lymia/enumset ) | `1.1.4` | `1.1.5` |
| [toml_edit](https://github.com/toml-rs/toml ) | `0.22.16` | `0.22.17` |
| [gilrs](https://gitlab.com/gilrs-project/gilrs ) | `0.10.8` | `0.10.9` |
| [env_logger](https://github.com/rust-cli/env_logger ) | `0.11.3` | `0.11.5` |
| [toml](https://github.com/toml-rs/toml ) | `0.8.15` | `0.8.16` |
Updates `clap` from 4.5.9 to 4.5.11
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.9...clap_complete-v4.5.11 )
Updates `tokio` from 1.38.1 to 1.39.2
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.38.1...tokio-1.39.2 )
Updates `quick-xml` from 0.36.0 to 0.36.1
- [Release notes](https://github.com/tafia/quick-xml/releases )
- [Changelog](https://github.com/tafia/quick-xml/blob/master/Changelog.md )
- [Commits](https://github.com/tafia/quick-xml/compare/v0.36.0...v0.36.1 )
Updates `serde_json` from 1.0.120 to 1.0.121
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.120...v1.0.121 )
Updates `enumset` from 1.1.4 to 1.1.5
- [Changelog](https://github.com/Lymia/enumset/blob/main/RELEASES.md )
- [Commits](https://github.com/Lymia/enumset/compare/v1.1.4...v1.1.5 )
Updates `toml_edit` from 0.22.16 to 0.22.17
- [Commits](https://github.com/toml-rs/toml/compare/v0.22.16...v0.22.17 )
Updates `gilrs` from 0.10.8 to 0.10.9
- [Commits](https://gitlab.com/gilrs-project/gilrs/compare/v0.10.8...v0.10.9 )
Updates `env_logger` from 0.11.3 to 0.11.5
- [Release notes](https://github.com/rust-cli/env_logger/releases )
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.11.3...v0.11.5 )
Updates `toml` from 0.8.15 to 0.8.16
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.15...toml-v0.8.16 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-minor
- dependency-name: quick-xml
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: enumset
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: gilrs
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: env_logger
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 16:39:55 +02:00
dependabot[bot]
09dfc753f2
build(deps-dev): bump typescript-eslint in /web
...
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) from 8.0.0-alpha.54 to 8.0.0-alpha.57.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/HEAD/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: typescript-eslint
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 16:05:47 +02:00
dependabot[bot]
3e21740403
build(deps-dev): bump the npm-minor group in /web with 5 updates
...
Bumps the npm-minor group in /web with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js ) | `9.7.0` | `9.8.0` |
| [eslint](https://github.com/eslint/eslint ) | `9.7.0` | `9.8.0` |
| [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc ) | `48.8.3` | `48.9.2` |
| [postcss](https://github.com/postcss/postcss ) | `8.4.39` | `8.4.40` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) | `5.3.4` | `5.3.5` |
Updates `@eslint/js` from 9.7.0 to 9.8.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/commits/v9.8.0/packages/js )
Updates `eslint` from 9.7.0 to 9.8.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v9.7.0...v9.8.0 )
Updates `eslint-plugin-jsdoc` from 48.8.3 to 48.9.2
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases )
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc )
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v48.8.3...v48.9.2 )
Updates `postcss` from 8.4.39 to 8.4.40
- [Release notes](https://github.com/postcss/postcss/releases )
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss/compare/8.4.39...8.4.40 )
Updates `vite` from 5.3.4 to 5.3.5
- [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.3.5/packages/vite )
---
updated-dependencies:
- dependency-name: "@eslint/js"
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: eslint
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: eslint-plugin-jsdoc
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: postcss
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
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 15:54:45 +02:00
Nathan Adams
3de0279149
avm2: ByteArray should implement IDataInput2 and IDataOutput2. For some reason.
2024-07-29 10:32:45 +02:00
Nathan Adams
892c39f24d
avm2: TouchEvent.getSamples and isToolButtonDown are AIR only
2024-07-29 10:32:45 +02:00
Nathan Adams
de8e9b60f6
avm2: IME _private fields should be private
2024-07-29 10:32:45 +02:00
Nathan Adams
bcba6250b9
avm2: NetStream.preloadEmbeddedData and setDRMAuthenticationCredentials are AIR only
2024-07-29 10:32:45 +02:00
Nathan Adams
f804cf4689
avm2: FocusEvent.direction is AIR only
2024-07-29 10:32:45 +02:00
Nathan Adams
dade26e93f
avm2: Event.SUSPEND is AIR only
2024-07-29 10:32:45 +02:00
Nathan Adams
ce9b2337f2
avm2: TextRenderer _private fields should be private
2024-07-29 10:32:45 +02:00
Nathan Adams
0f91196ad0
avm2: FileReference requestPermission and uploadUnencoded are AIR only
2024-07-29 10:32:45 +02:00
Nathan Adams
b7e78f4ca6
avm2: MouseCursorData _private fields should be private
2024-07-29 10:32:45 +02:00
Nathan Adams
cc1185182d
avm2: FrameLabel should extend EventDispatcher
2024-07-29 10:32:45 +02:00
Nathan Adams
c2084dfd7a
avm2: Worker should extend EventDispatcher
2024-07-29 10:32:45 +02:00
Nathan Adams
2dec2029e0
avm2: GameInputControl should extend EventDispatcher
2024-07-29 10:32:45 +02:00
Nathan Adams
2e2b7deaa7
avm2: HTTPStatusEvent has AIR-only fields
2024-07-29 10:32:45 +02:00
Nathan Adams
3810ae6a53
avm2: Stage.loaderInfo should not have a setter
2024-07-29 10:32:45 +02:00
Nathan Adams
a5096890e0
avm2: LoaderContext.allowLoadBytesCodeExecution is actually an AIR-only wrapper around allowCodeImport
2024-07-29 10:32:45 +02:00
Nathan Adams
4bcff2655e
avm2: Security.APPLICATION is AIR only
2024-07-29 10:32:45 +02:00
Nathan Adams
c152605cad
avm2: TextLine.hasTabs should be a getter, not a function
2024-07-29 10:32:45 +02:00
Nathan Adams
9b01d51b72
avm2: A bunch of Keyboard constants are AIR only
2024-07-29 10:32:45 +02:00
Nathan Adams
dcd3949093
avm2: URLRequestDefaults is AIR only
2024-07-29 10:32:45 +02:00
Nathan Adams
f6ca9bcdac
avm2: Also exclude interface based virtual properties from describeTypeJSON
2024-07-28 23:18:52 +02:00
Nathan Adams
4ae2a73b54
avm2: Check API version in describeTypeJSON
2024-07-28 23:18:52 +02:00
Nathan Adams
db0fd879d2
avm2: Don't include interface methods in describeTypeJSON
2024-07-28 23:18:52 +02:00
Crowdin Bot
2ac4e7e62d
chore: Update translations from Crowdin
2024-07-28 01:00:18 +02:00
Kamil Jarosz
c7e8d3d9d5
desktop: Detect light theme on Linux
...
The function `start_dbus_theme_watcher` detects system theme on
freedesktop-compliant systems and starts a watcher which
listens for changes.
2024-07-27 22:56:18 +02:00
Kamil Jarosz
496a966c64
desktop: Add D-Bus support
...
This patch adds D-Bus support, implements the interface
`org.freedesktop.portal.Settings`, and provides `FreedesktopSettings`,
which facilitates access to freedesktop settings and its color-scheme.
2024-07-27 22:56:18 +02:00
Kamil Jarosz
52192fa9ca
desktop: Add RuffleEvent::ThemeChanged
2024-07-27 22:56:18 +02:00
Kamil Jarosz
14d5b3ace3
desktop: Make GuiController::new async
2024-07-27 22:56:18 +02:00
Kamil Jarosz
96173b0501
web: Improve virtual keyboard support
...
This patch integrates the virtual keyboard with the newly added focus
management and removes Android-specific code, instead using generic
logic which takes advantage of improved focus support in SWFs.
2024-07-27 21:32:35 +02:00
Kamil Jarosz
53d2d16162
core: Add UiBackend::close_virtual_keyboard
...
This method may be used by backends that require explicit virtual
keyboard closing.
2024-07-27 21:32:35 +02:00
Kamil Jarosz
e18ae830c1
web: Use browser focus events for focus management
...
This patch changes how the player focus is managed.
Before this patch, `instance.has_focus` was unrelated
to the current focus managed by the browser.
When the user clicked anywhere on the window, it was set to `false`,
and when the user clicked on the player, it was set to `true`.
This had two major issues.
1. When the user clicked on the player, `has_focus` was set to `false`,
and then again to `true`. That was problematic when listening
to focus change events.
2. Not using browser's focus makes it harder to integrate with Ruffle,
i.e. tab out of Ruffle.
This patch uses browser's focus management to detect focus
and listen to focus events:
1. on `focusin` – FocusGained event is fired,
2. on `focusout` – FocusLost event is fired, and
3. on `pointerdown` – focus is manually set to the canvas.
The container has `tabindex` set to -1 in order to be focusable.
Virtual keyboard on web is represented as an input inside the container.
In order to preserve player focus when virtual keyboard is open,
this patch ensures that the container is focused and not the canvas.
This way, when the input is focused, the container does not lose its focus.
2024-07-27 21:32:35 +02:00
Lord-McSweeney
ad4a65eee8
tests: Add test for linking root movie to non-zero id
2024-07-27 16:12:44 +03:00
Lord-McSweeney
6f0e641748
core: Link root movie to first invalid character ID registered, instead of always using character ID #0
2024-07-27 16:12:44 +03:00
Tom Schuster
93e86d977c
avm2: Add flash.sensors.Geolocation stub
2024-07-27 14:13:04 +02:00
Tom Schuster
840128d81a
avm2: flash.sensors.Accelerometer extends EventDispatcher
2024-07-27 14:13:04 +02:00
Tom Schuster
64c6782249
tests: Test Proxy hasProperty override is called for hasOwnProperty
2024-07-27 12:33:58 +02:00
Tom Schuster
1687739093
avm2: Call the Proxy hasProperty override for Object.hasOwnProperty
2024-07-27 12:33:58 +02:00