Robert Ancell
904a1ab58f
Fix variable name ( flutter/engine#54045 )
2024-07-24 18:54:30 +12:00
Robert Ancell
94a7e50936
Temporarily disable use of glBlitFramebuffer on NVIDIA ( flutter/engine#54040 )
...
Workaround for https://github.com/flutter/flutter/issues/152099
2024-07-24 05:08:11 +12:00
Robert Ancell
c9ddcc41a4
Set the view ID for FlView ( flutter/engine#54043 )
...
Follow up to https://github.com/flutter/engine/pull/54018 .
2024-07-24 04:57:12 +12:00
Robert Ancell
e1f2360083
Add fl_engine_add/remove_view ( flutter/engine#54018 )
...
This is API that will be required when we get multi-view support on
Linux. While this internal API is not currently used, I've made a PR so
it can be more easily reviewed.
2024-07-23 23:34:47 +12:00
Robert Ancell
d11f10ccb6
Make FlWindowStateMonitor ( flutter/engine#54011 )
...
Split window state monitor out of FlView and FlEngine to make it easier
to handle different API when using GTK4. It also allows better tests.
2024-07-23 22:47:56 +12:00
Robert Ancell
7855b2c857
Don't leak binary messenger in tests ( flutter/engine#53985 )
...
Looks like the original code was just copied around. Should have no
effect on the tests other than making it easier to detect other leaks.
2024-07-19 14:36:32 +12:00
Robert Ancell
4a63063be6
Renamed plugin classes to handler ( flutter/engine#53736 )
...
The Linux embedder had a number of handlers for Flutter channels that
were named plugin/handler/manager. Rename these all to handler to be
consistent and reduce confusion with Flutter plugins (which these don't
use the infrastructure for).
2024-07-19 12:44:41 +12:00
Robert Ancell
dde01765c9
Use glBlitFramebuffer when rendering ( flutter/engine#53080 )
...
This is much faster than using a shader which is not required currently
(we are not doing any transformations).
2024-07-18 16:02:39 +12:00
Robert Ancell
e3b2d11dba
Restore creation of engine before Linux widget is realized. ( flutter/engine#53604 )
...
Due to changes in the renderer in fc560d4 the engine was created once a
widget is realized, not when the widget is created. If a Flutter
application changed the default my_application.cc template to show the
Flutter widget after plugins are run then these plugins would not be
able to access the engine.
Solved by removing the GdkWindow from the renderer constructor and
setting in later when the widget is realized. This works because the
renderer is not used until the widget is realized.
Fixes https://github.com/flutter/flutter/issues/144873
2024-07-02 17:18:07 +12:00
Callum Moffat
22f181c1d3
Map mouse pointer type on Linux ( flutter/engine#52418 )
...
Before all mouse clicks were set to `PointerDeviceKind.mouse` on Linux. Now use the proper type according to the source `GdkEvent`.
Fixes https://github.com/flutter/flutter/issues/147277
2024-06-10 22:35:55 +00:00
Robert Ancell
2eff476e2c
Fix rendering corruption by Flutter and GDK sharing the same OpenGL context ( flutter/engine#53103 )
...
Fix rendering corruption by Flutter and GDK sharing the same OpenGL
context
Solved by having three contexts - one for GDK and two for Flutter.
Regression introduced in https://github.com/flutter/engine/pull/50754
Fixes https://github.com/flutter/flutter/issues/148653
2024-06-04 11:02:09 +12:00
Yegor
d3b6b1be14
add SemanticsAction.focus ( flutter/engine#53094 )
...
Add `SemanticsAction.focus`. This PR just adds the new enum value without any logic. Adding the enum value first to unblock work that needs to be done on both the engine and framework side that will actually implement all the necessary logic.
This is PR 1 out of ~3 for https://github.com/flutter/flutter/issues/83809
2024-05-30 17:15:53 +00:00
Byoungchan Lee
d56c301037
Add Linux platform support for fetching refresh rate on startup. ( flutter/engine#52934 )
...
This patch addresses the missing implementation of
`platformDispatcher.views` on Linux. It checks the refresh rate of the
renderer's window and returns the value. Without this implementation,
`WidgetsBinding.instance.platformDispatcher.views.first.display.size`
would throw an exception on Linux, preventing safe usage.
Related: https://github.com/flutter/flutter/issues/144230
2024-05-28 12:38:07 +12:00
auto-submit[bot]
ea811b97ba
Reverts "Manual roll of Clang from 725656bdd885 to 145176dc0c93 ( #52823 )" ( flutter/engine#52890 )
...
Reverts: flutter/engine#52823
Initiated by: zanderso
Reason for reverting: Engine crashes on framework CI following this roll https://ci.chromium.org/ui/p/flutter/builders/prod/Linux_android%20flutter_gallery__transition_perf_with_semantics/12126/overview
Original PR Author: jason-simmons
Reviewed By: {zanderso}
This change reverts the following previous change:
See https://github.com/flutter/flutter/issues/143178
2024-05-16 22:01:38 +00:00
Jason Simmons
31d7cb2870
Manual roll of Clang from 725656bdd885 to 145176dc0c93 ( flutter/engine#52823 )
...
See https://github.com/flutter/flutter/issues/143178
2024-05-16 17:16:21 +00:00
Robert Ancell
2ab69c9f42
Use a AT-SPI socket/plug to export the Flutter accessibility state. ( flutter/engine#52355 )
...
This will be useful when using GTK4, which doesn't support custom a11y
code in GTK and will require the Flutter code to be exported in a plug.
2024-04-29 09:34:20 +12:00
Jason Simmons
b84c057bfb
Fix some warnings reported by recent versions of clang-tidy ( flutter/engine#52349 )
...
* Invalid enum values in the embedder library
* Disable a check that warns about standard usage of GTK macros in the Linux embedder
2024-04-24 17:46:19 +00:00
Robert Ancell
2ba71d60e9
Fix incorrect function name in documentation ( flutter/engine#52184 )
2024-04-18 09:23:21 +12:00
Jason Simmons
e5d0cae6cd
Save and restore OpenGL bindings that are changed by fl_renderer_render ( flutter/engine#51887 )
...
fl_renderer_render uses the raster thread GL context that is also used by Skia. Skia expects that its bindings have not been changed elsewhere.
2024-04-11 19:39:03 +00:00
Robert Ancell
ae2ac7f706
Add fl_standard_method_codec_new_with_message_codec() ( flutter/engine#51599 )
...
Matches constructor in
https://api.flutter.dev/flutter/services/StandardMethodCodec-class.html
and is required to make method calls with custom value types.
2024-03-25 14:06:27 +13:00
Tong Mu
ba26f6ee8b
Multi-view View Metrics ( flutter/engine#46174 )
...
This PR adds `FlutterWindowMetricsEvent.viewId` to the embedder API.
This PR only tests the ability to send metrics event for the implicit
view. Once multiple views can be added via embedder API, we should test
the ability to send different IDs.
Part of https://github.com/flutter/flutter/issues/144806
Part of https://github.com/flutter/flutter/issues/142845
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-03-13 17:00:17 -07:00
Zachary Anderson
2fdc3293eb
Disable flaky linux desktop test ( flutter/engine#51231 )
...
For https://github.com/flutter/flutter/issues/138197
2024-03-06 20:27:00 +00:00
Robert Ancell
614df9461d
Fix custom FlValue API not being exported ( flutter/engine#51154 )
...
Would fail to link when using it in a Flutter app.
2024-03-04 15:05:41 +13:00
Robert Ancell
fc560d4bc2
Refactor GL rendering to prepare for GTK4 ( flutter/engine#50754 )
...
Refactor GL rendering to prepare for GTK4
- Remove FlGLArea - we can just use GtkGLArea directly
- Stop using gdk_cairo_draw_from_gl, it's not available in GTK4.
- Rename FlRendererGL to FlRendererGdk, this was implying that
FlRenderer could be something other than OpenGL which is not the case
currently.
- Remove unnecessary virtual methods in FlRenderer, just implement them
as standard methods.
Related: https://github.com/flutter/flutter/issues/143408
2024-03-01 10:24:11 +13:00
Robert Ancell
da5550db7f
Update Linux embedder to latest semantics API ( flutter/engine#51030 )
...
Change to the latest semantics API and remove an unused class.
2024-02-29 15:18:19 +13:00
Robert Ancell
1aa5dbf113
Code consistency fixes in FlScrollingManager ( flutter/engine#50959 )
2024-02-28 09:06:20 +13:00
Zachary Anderson
f6629ffe5c
Use 'et format' in CI. Check formatting of all files in CI ( flutter/engine#50810 )
...
This PR changes the format check on CI to use the command added in
https://github.com/flutter/engine/pull/50747 .
Additionally, while making this change, I noticed that the CI check was
not checking the formatting of all files, and that as a result, files
were present in the repo with incorrect formatting. I have fixed the
formatting and fixed the check to always check all files.
2024-02-21 09:38:08 -08:00
Robert Ancell
0c1e0846c0
Connect signals in swapped form. ( flutter/engine#50705 )
...
This makes them look more like methods.
2024-02-16 17:01:03 -08:00
Chinmay Garde
6c17d7bf9d
Use a GN variable (dart_src) to reference the location of the Dart checkout. ( flutter/engine#50624 )
...
Towards https://github.com/flutter/flutter/issues/143335
2024-02-14 21:12:23 -08:00
Robert Ancell
51c9fc1c08
Replace usage of an integer for GdkModifierType ( flutter/engine#50481 )
...
The integer is replaced with the enumerated type in GTK4. The
documentation in GTK3 indicates the value is the enumerated type.
2024-02-13 12:26:46 +13:00
Robert Ancell
08995aae83
Remove FlKeyEvent.dispose_origin and use GdkEvent type for origin ( flutter/engine#50483 )
...
This removes casting. origin was a pointer for testing purposes to be
mocked but the tests make no use of this.
2024-02-13 12:19:29 +13:00
Robert Ancell
6f39b9941b
Clear objects before setting them. ( flutter/engine#50344 )
...
The existing code worked, but it cleared the objects before calling
init_keyboard. This made it look like init_keyboard might leak the
existing values. If a third case was added later where init_keyboard was
called it would leak if the caller didn't clear the objects before
calling it.
2024-02-08 16:20:57 +13:00
Robert Ancell
bd70ef1215
Remove string field from FlKeyEvent ( flutter/engine#50189 )
...
This field is deprecated in GTK3 [1] and not used in Flutter. It does
not exist in GTK4.
[1] https://docs.gtk.org/gdk3/struct.EventKey.html
2024-02-01 16:17:19 +13:00
Jason Simmons
e6d660a059
Handle construction/destruction of GObject private data containing C++ objects in Linux embedder tests ( flutter/engine#50022 )
...
See https://github.com/flutter/flutter/issues/140183
2024-01-29 20:07:04 +00:00
Matan Lurey
e9e5a237f8
Finish landing missing/incorrect header guards across flutter/engine ( flutter/engine#50069 )
...
Generated by https://github.com/flutter/engine/pull/48903 (`dart ./tools/header_guard_check/bin/main.dart --fix`).
As discussed with @cbracken and @jmagman, the guards are not technically needed on the Mac/iOS code, but they (a) do not hurt and (b) still provide value if for some reason `#include` is used instead of `#import` (though I suspect we could try to add that to the tool in the future as well).
2024-01-26 19:42:36 +00:00
Robert Ancell
7efa9951c2
Add custom FlValue types and support their en/decoding via FlStandardMessageCodec ( flutter/engine#49162 )
...
Add Linux support for custom data types in Flutter channels.
Fixes https://github.com/flutter/flutter/issues/140299
2024-01-25 09:29:54 +13:00
Loïc Sharma
9792c4bd03
Reland "[Windows] Move to FlutterCompositor for rendering" ( flutter/engine#49726 )
...
## Original pull request description
This migrates the Windows embedder to `FlutterCompositor` so that the engine renders off-screen to a framebuffer instead of directly onto the window's surface. This will allow us to support platform views and multiple views on Windows.
Addresses https://github.com/flutter/flutter/issues/128904
## Reland (again)
https://github.com/flutter/engine/pull/49262 was reverted as it regressed [`package:material_floating_search_bar_2`](https://pub.dev/packages/material_floating_search_bar_2/versions/0.5.0 ). See: https://github.com/flutter/flutter/issues/140828
This pull request is split into the following commits:
1. d337378a74 is the previous reland pull request, unchanged
2. e866af0229 disables the scissor test before blitting the framebuffer, allowing us to "force" copy the framebuffer's contents by ignoring scissoring values
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-16 22:14:02 +00:00
Tong Mu
f15bc4cb13
[Linux] Remove the usage of std::function in FlKeyEmbedderResponder ( flutter/engine#49293 )
...
Fixes https://github.com/flutter/flutter/issues/140183
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-12 23:08:52 +00:00
Loïc Sharma
8be4835c7c
Revert "Reland "[Windows] Move to FlutterCompositor for rendering" ( flutter/engine#49461 )
...
This reverts https://github.com/flutter/engine/pull/49262 (f3381e1080 ) as it regressed [`material_floating_search_bar`](https://pub.dev/packages/material_floating_search_bar_2 )'s animation.
This revert was created manually due to merge conflicts.
Issue tracking bug: https://github.com/flutter/flutter/issues/140828
Part of https://github.com/flutter/flutter/issues/128904
<details>
<summary>Minimal repro of the broken animation...</summary>
Here's what the animation is supposed to look like:

Here's what the animation actually looks like: 
Here is a minimal repro of the broken animation:
```dart
// The Windows compositor changes regresses the animation in
// the `material_floating_search_bar_2` package:
//
// https://pub.dev/packages/material_floating_search_bar_2/versions/0.5.0
//
// Below is a minimal repro of the broken animation. This has two pieces:
//
// 1. The background fades to a grey color
// 2. A box is "revealed" using a custom clipper
//
// On framework commit b417fb828b332b0a4b0c80b742d86aa922de2649 this animation is broken on Windows.
// On framework commit 9c2a7560096223090d38bbd5b4c46760be396bc1 this animation works as expected on Windows.
//
// Good gif: https://publish-01.obsidian.md/access/b48ac8ca270cd9dac18c4a64d11b1c02/assets/2023-12-28-compositor_animation_regression_good.gif
// Bad gif: https://publish-01.obsidian.md/access/b48ac8ca270cd9dac18c4a64d11b1c02/assets/2023-12-28-compositor_animation_regression_bad.gif
import 'dart:math';
import 'dart:ui';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
// Not using `MaterialApp` is necessary to reproduce:
return Container(
color: Colors.white,
child: const Directionality(
textDirection: TextDirection.ltr,
child: FloatingSearchBar(),
),
);
// Switching to `MaterialApp` fixes the issue:
// return const MaterialApp(
// home: Scaffold(
// body: FloatingSearchBar(),
// ),
// );
}
}
class FloatingSearchBar extends StatefulWidget {
const FloatingSearchBar({super.key});
@override
FloatingSearchBarState createState() => FloatingSearchBarState();
}
class FloatingSearchBarState extends State<FloatingSearchBar> with SingleTickerProviderStateMixin {
late final AnimationController _controller = AnimationController(
vsync: this,
duration: const Duration(seconds: 2),
);
@override
void dispose() {
_controller.dispose();
super.dispose();
}
void _animate() {
if (_controller.isDismissed || _controller.status == AnimationStatus.reverse) {
_controller.forward();
} else {
_controller.reverse();
}
}
@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _controller,
builder: (BuildContext context, _) {
return Stack(
children: <Widget>[
if (!_controller.isDismissed)
FadeTransition(
opacity: _controller,
child: const SizedBox.expand(
child: DecoratedBox(
decoration: BoxDecoration(color: Colors.black26),
),
),
),
_buildSearchBar(),
],
);
},
);
}
Widget _buildSearchBar() {
return Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
// This is where the search text input would go...
GestureDetector(
onTap: () => _animate(),
child: Text(
switch (_controller.status) {
AnimationStatus.forward || AnimationStatus.completed => 'Click to close',
AnimationStatus.reverse || AnimationStatus.dismissed => 'Click to open',
},
style: const TextStyle(color: Colors.black),
),
),
// Below are where the search results would be. Clicking on the search
// input above reveals the results below.
// Removing this fixes the background's fade transition.
ClipOval(
clipper: _CircularRevealClipper(
fraction: _controller.value,
),
child: DecoratedBox(
decoration: BoxDecoration(
color: Colors.white,
// Removing this line fixes the background's fade transition.
borderRadius: BorderRadius.circular(16.0),
),
child: const Padding(
padding: EdgeInsets.all(64.0),
child: Text(
'Hello world',
style: TextStyle(color: Colors.black),
),
),
),
),
],
);
}
}
class _CircularRevealClipper extends CustomClipper<Rect> {
const _CircularRevealClipper({required this.fraction});
final double fraction;
@override
Rect getClip(Size size) {
final double halfWidth = size.width * 0.5;
final double maxRadius = sqrt(halfWidth * halfWidth + size.height * size.height);
final double radius = lerpDouble(0.0, maxRadius, fraction) ?? 0;
return Rect.fromCircle(
center: Offset(halfWidth, 0),
radius: radius,
);
}
@override
bool shouldReclip(CustomClipper<Rect> oldClipper) {
if (oldClipper is _CircularRevealClipper) {
return oldClipper.fraction != fraction;
}
return true;
}
}
```
</details>
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-02 23:31:04 +00:00
Loïc Sharma
f3381e1080
Reland "[Windows] Move to FlutterCompositor for rendering" ( flutter/engine#49262 )
...
## Reland
https://github.com/flutter/engine/pull/48849 was reverted as it incorrectly expected to receive always 1 layer. However, the engine will present 0 layers on an ["empty" app](6981fe6fd3/dev/integration_tests/ui/lib/empty.dart (L8-L19) ). This pull request is split into two commits:
1. df604a16c0 is the original pull request, unchanged
2. c30b369289 adds the ability to "clear" the view if the engine presents 0 layers
## Original pull request description
This migrates the Windows embedder to `FlutterCompositor` so that the engine renders off-screen to a framebuffer instead of directly onto the window's surface. This will allow us to support platform views and multiple views on Windows.
Addresses https://github.com/flutter/flutter/issues/128904
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-21 01:23:20 +00:00
Tong Mu
2e551cb5c3
Multi-view pointer event ( flutter/engine#46213 )
...
This PR adds a new field `view_id` to embedder API's `FlutterPointerEvent`, allowing platforms to specify the source view of pointer events.
https://github.com/flutter/flutter/issues/112205
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-20 19:21:22 +00:00
Matan Lurey
02f6c46771
Fix header-guard naming convention in shell/. ( flutter/engine#49006 )
...
Part of landing https://github.com/flutter/engine/pull/48903 .
Some of these actually seem like potential owchy spots, i.e. `#ifndef FLUTTER_FLUTTER_H_`.
2023-12-14 23:37:22 +00:00
auto-submit[bot]
171873ec88
Reverts "[Windows] Move to FlutterCompositor for rendering" ( flutter/engine#49015 )
...
Reverts flutter/engine#48849
Initiated by: loic-sharma
This change reverts the following previous change:
Original Description:
This migrates the Windows embedder to `FlutterCompositor` so that the engine renders off-screen to a framebuffer instead of directly onto the window's surface. This will allow us to support platform views and multiple views on Windows.
<details>
<summary>Tests...</summary>
* Verify OpenGL compositor's raster time isn't regressed and memory increase is reasonable
* Software compositor's raster time and memory isn't regressed
Test device configurations
* [x] Windows 11 (hardware acceleration enabled/disabled)
* [x] Windows Arm64 (hardware acceleration enabled/disabled)
* [x] Windows 7 (hardware acceleration enabled/disabled, DWM enabled/disabled)
</details>
Addresses https://github.com/flutter/flutter/issues/128904
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-14 05:03:20 +00:00
Loïc Sharma
d5a40e1093
[Windows] Move to FlutterCompositor for rendering ( flutter/engine#48849 )
...
This migrates the Windows embedder to `FlutterCompositor` so that the engine renders off-screen to a framebuffer instead of directly onto the window's surface. This will allow us to support platform views and multiple views on Windows.
<details>
<summary>Tests...</summary>
* Verify OpenGL compositor's raster time isn't regressed and memory increase is reasonable
* Software compositor's raster time and memory isn't regressed
Test device configurations
* [x] Windows 11 (hardware acceleration enabled/disabled)
* [x] Windows Arm64 (hardware acceleration enabled/disabled)
* [x] Windows 7 (hardware acceleration enabled/disabled, DWM enabled/disabled)
</details>
Addresses https://github.com/flutter/flutter/issues/128904
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-13 23:21:56 +00:00
Robert Ancell
297a817fc9
Fix the application not disposing by breaking circular references on quit ( flutter/engine#47684 )
...
GtkApplication windows contain a reference back to the application. This
means the MyApplication object in the Flutter application never
disposes. We workaround this by removing these references before we
quit. This occurs for all GTK applications that quit using this method,
see https://gitlab.gnome.org/GNOME/gtk/-/issues/6190 . This may be fixed
upstream at some point but the proposed workaround should solve the
problem for all versions and not conflict with any upstream solution.
Fixes https://github.com/flutter/flutter/issues/136582
2023-11-29 14:01:53 +13:00
Matan Lurey
d5b171165f
Finish making shell/platform/linux/... compatible with .clang-tidy. ( flutter/engine#48297 )
2023-11-21 15:35:36 -08:00
Matan Lurey
0b7f44c8c4
Yet more compliance with .clang_tidy, stragglers edition. ( flutter/engine#48291 )
...
Based off the
[failures](https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8763786250936903249/+/u/test:_test:_lint_host_debug/stdout )
in https://github.com/flutter/engine/pull/48145 .
Nothing particularly interesting.
2023-11-21 13:39:18 -08:00
Matan Lurey
edb665c82d
Make {shell|lib/ui}/... compatible with .clang_tidy. ( flutter/engine#48242 )
...
This is mostly just rename `ThreadHost::Type::{IDENTIFIER}` to
`kIdentifier`.
I also ignored some enum violations that are in public APIs.
2023-11-21 12:29:14 -08:00
Greg Spencer
28d807f326
Update keycode output ( flutter/engine#47988 )
...
## Description
This updates the keycode definitions to match what the keycode generator produces, to keep them in sync.
2023-11-15 17:29:34 +00:00
Greg Spencer
68166947cc
Move window state update to window realize callback ( flutter/engine#47713 )
...
## Description
This moves the state update to only happen on realizing the window instead of at initialization time, based on [the comment from](https://github.com/flutter/flutter/issues/137262#issuecomment-1792020246 ) @robert-ancell .
## Related Issues
- https://github.com/flutter/flutter/issues/137262
## Tests
- I tried to add tests, but it doesn't seem possible to create a view without an actual display connected (and making a mock of it defeats the purpose of the test). I'm happy to be proven wrong, though.
2023-11-08 23:56:01 +00:00