Skip to content

Conversation

knopp
Copy link
Member

@knopp knopp commented Feb 23, 2025

Notable changes:

  • Moved keyboard layout related code from FlutterViewController to FlutterKeyboardLayout.
  • FlutterKeyboardManager is now owned by the engine and shared between view controllers. The per view controller part, which is associated with event, has been moved from FlutterKeyboardManager delegate to FlutterKeyboardManagerEventContext.
  • The FlutterKeyboardManagerDelegate is implemented by FlutterEngine.
  • Some overall clean-up and dead code removal (i.e. _NSResponderPtr and NextResponderProvider)

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added engine flutter/engine related. See also e: labels. a: desktop Running on desktop platform-macos labels Feb 23, 2025
@knopp knopp force-pushed the multiview_keyboard_manager branch 3 times, most recently from 4775fc6 to 7a2161d Compare February 24, 2025 10:37
@knopp knopp changed the title WIP: [macOS] Prepare FlutterKeyboardManager for multi-view [macOS] Prepare FlutterKeyboardManager for multi-view Feb 24, 2025
@knopp knopp requested review from cbracken and dkwingsmt and removed request for cbracken February 24, 2025 10:43
Copy link
Contributor

@dkwingsmt dkwingsmt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The implementation LGTM, only need more documentations.

@@ -104,9 +104,6 @@ - (void)syncModifiersIfNeeded:(NSEventModifierFlags)modifierFlags
forEventFlags:modifierFlags
keyCode:0x00000039 // kVK_CapsLock
timestamp:timestamp];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this check removed?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because during CMD+TAB macOS for some reason sends event with NSEventModifierFlagCommand set, but without the left + right bits set. And because we only check for the left + right bits when synthesizing the event, in the end the comparison fails because the flags we built value doesn't correspond to the original one.

@knopp knopp force-pushed the multiview_keyboard_manager branch from bf2b07e to b2d25eb Compare February 28, 2025 21:18
Copy link
Contributor

@dkwingsmt dkwingsmt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! Thank you!

@knopp knopp enabled auto-merge February 28, 2025 22:23
@knopp knopp added this pull request to the merge queue Feb 28, 2025
Merged via the queue into flutter:master with commit 07503bb Feb 28, 2025
175 checks passed
@knopp knopp deleted the multiview_keyboard_manager branch February 28, 2025 23:00
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 2, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Mar 2, 2025
Roll Flutter from 2e570ca to 842db35 (59 revisions)

flutter/flutter@2e570ca...842db35

2025-03-02 engine-flutter-autoroll@skia.org Roll Skia from ad64415050aa to 101eee8fce59 (1 revision) (flutter/flutter#164449)
2025-03-02 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from ln3joxJfRN2XGhvCv... to AO1KirSDI7-MVYNPN... (flutter/flutter#164440)
2025-03-02 chris@bracken.jp android: Clean up gen_snapshot artifact build (flutter/flutter#164418)
2025-03-02 matanlurey@users.noreply.github.com Start using `bin/cache/engine.{stamp|realm}` instead of `bin/internal/engine.{realm|version}`. (flutter/flutter#164352)
2025-03-01 chris@bracken.jp Add macos/android_debug_unopt to local_engine.json (flutter/flutter#164410)
2025-03-01 chris@bracken.jp Delete unused build archive targets (flutter/flutter#164414)
2025-03-01 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from QMun2itYrV_zUYrvW... to ln3joxJfRN2XGhvCv... (flutter/flutter#164423)
2025-03-01 engine-flutter-autoroll@skia.org Roll Skia from ac14158663ea to ad64415050aa (1 revision) (flutter/flutter#164413)
2025-03-01 eric@shorebird.dev Update linux_host_engine.json ci/host_release description (flutter/flutter#164402)
2025-03-01 jason-simmons@users.noreply.github.com In update_engine_version_test.dart, do not populate the test environment with the host platform environment (flutter/flutter#164395)
2025-03-01 matanlurey@users.noreply.github.com Roll-forward #164317: Use `bin/cache/engine.stamp` (flutter/flutter#164401)
2025-02-28 ybz975218925@gmail.com Make pressing and moving on CupertinoButton closer to native behavior. (flutter/flutter#161731)
2025-02-28 engine-flutter-autoroll@skia.org Roll Skia from 4005ba3ca7b6 to ac14158663ea (7 revisions) (flutter/flutter#164404)
2025-02-28 matej.knopp@gmail.com [macOS] Prepare FlutterKeyboardManager for multi-view (flutter/flutter#163962)
2025-02-28 matej.knopp@gmail.com Add PlatformDispatcher.engineId (flutter/flutter#163476)
2025-02-28 matanlurey@users.noreply.github.com Move `integration_test.FlutterDeviceScreenshotTest` to the framework slow shard (flutter/flutter#164398)
2025-02-28 34465683+rkishan516@users.noreply.github.com Fix: Update DelegatedTransition animation parameter correctly (flutter/flutter#163853)
2025-02-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Write an identical value to `bin/cache/engine.stamp` to prepare for migration (#164317)" (flutter/flutter#164396)
2025-02-28 47989573+Hannnes1@users.noreply.github.com Add action for configuring default action of EditableText.onTapUpOutside (flutter/flutter#162575)
2025-02-28 reidbaker@google.com Align jvmTarget usages across codebase, while editing build.gradle files align them with android version documentation (flutter/flutter#164200)
2025-02-28 engine-flutter-autoroll@skia.org Roll Packages from 01d3d5c to 70b41e1 (5 revisions) (flutter/flutter#164380)
2025-02-28 51940183+Sameri11@users.noreply.github.com [tool] Allow using archiveName in android bundle build (flutter/flutter#162390)
2025-02-28 ueman@users.noreply.github.com Fix incorrectly checking for invalid environment variables in the tool (flutter/flutter#164101)
2025-02-28 robert.ancell@canonical.com Support forward and back buttons (flutter/flutter#164356)
2025-02-28 robert.ancell@canonical.com Fix window creation callback for multi-window (flutter/flutter#164353)
2025-02-28 robert.ancell@canonical.com Fix flutter doctor usage of eglinfo in failure cases. (flutter/flutter#164334)
2025-02-28 sigurdm@google.com  Refactor writing of package config in tests (flutter/flutter#163734)
2025-02-28 ybz975218925@gmail.com Fixed the issue that Slider's secondaryTrackValue is not updated. (flutter/flutter#163996)
2025-02-28 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#164357)
2025-02-28 codefu@google.com Remove `Mac mac_unopt` presubmit retry count (flutter/flutter#164350)
2025-02-28 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 1elkOxihZuTEiTXzY... to QMun2itYrV_zUYrvW... (flutter/flutter#164351)
2025-02-28 ybz975218925@gmail.com Drag handles only need to be tested on mobile platforms. (flutter/flutter#163723)
2025-02-28 jonahwilliams@google.com [Android] Use java for looking up Android API level. (flutter/flutter#163558)
2025-02-28 matanlurey@users.noreply.github.com Write an identical value to `bin/cache/engine.stamp` to prepare for migration (flutter/flutter#164317)
2025-02-27 47866232+chunhtai@users.noreply.github.com Wires up expanded state in web engine (flutter/flutter#164048)
2025-02-27 matanlurey@users.noreply.github.com Remove Cheserton's File (flutter/flutter#164340)
2025-02-27 robert.ancell@canonical.com Replace update semantics handler with signal. (flutter/flutter#163583)
2025-02-27 30870216+gaaclarke@users.noreply.github.com Split up the conical gradient fragment shader (flutter/flutter#164058)
2025-02-27 engine-flutter-autoroll@skia.org Roll Skia from c16b145749d4 to 4005ba3ca7b6 (3 revisions) (flutter/flutter#164339)
2025-02-27 matanlurey@users.noreply.github.com Delete and update stale documentation regarding engine/engine hash. (flutter/flutter#164324)
2025-02-27 matanlurey@users.noreply.github.com Document how `engine.version` (is/will be) computed (flutter/flutter#164335)
2025-02-27 christopherfujino@gmail.com Update conductor to write engine.version file (flutter/flutter#163350)
2025-02-27 reidbaker@google.com remove last usages of min/compile/target SdkVersion, align sourceCompatibility across repo and update android version documentation (flutter/flutter#164198)
2025-02-27 matanlurey@users.noreply.github.com Update links to the `flutter/engine` repository for the monorepo. (flutter/flutter#164328)
2025-02-27 34871572+gmackall@users.noreply.github.com Add empty `io.flutter.app.FlutterApplication` to give deprecation notice, and un-break projects that have not migrated (flutter/flutter#164233)
2025-02-27 aam@google.com Revert dart sdks that were causing dartaotruntime issues in g3  (flutter/flutter#164307)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
Roll Flutter from 2e570ca to 842db35 (59 revisions)

flutter/flutter@2e570ca...842db35

2025-03-02 engine-flutter-autoroll@skia.org Roll Skia from ad64415050aa to 101eee8fce59 (1 revision) (flutter/flutter#164449)
2025-03-02 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from ln3joxJfRN2XGhvCv... to AO1KirSDI7-MVYNPN... (flutter/flutter#164440)
2025-03-02 chris@bracken.jp android: Clean up gen_snapshot artifact build (flutter/flutter#164418)
2025-03-02 matanlurey@users.noreply.github.com Start using `bin/cache/engine.{stamp|realm}` instead of `bin/internal/engine.{realm|version}`. (flutter/flutter#164352)
2025-03-01 chris@bracken.jp Add macos/android_debug_unopt to local_engine.json (flutter/flutter#164410)
2025-03-01 chris@bracken.jp Delete unused build archive targets (flutter/flutter#164414)
2025-03-01 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from QMun2itYrV_zUYrvW... to ln3joxJfRN2XGhvCv... (flutter/flutter#164423)
2025-03-01 engine-flutter-autoroll@skia.org Roll Skia from ac14158663ea to ad64415050aa (1 revision) (flutter/flutter#164413)
2025-03-01 eric@shorebird.dev Update linux_host_engine.json ci/host_release description (flutter/flutter#164402)
2025-03-01 jason-simmons@users.noreply.github.com In update_engine_version_test.dart, do not populate the test environment with the host platform environment (flutter/flutter#164395)
2025-03-01 matanlurey@users.noreply.github.com Roll-forward #164317: Use `bin/cache/engine.stamp` (flutter/flutter#164401)
2025-02-28 ybz975218925@gmail.com Make pressing and moving on CupertinoButton closer to native behavior. (flutter/flutter#161731)
2025-02-28 engine-flutter-autoroll@skia.org Roll Skia from 4005ba3ca7b6 to ac14158663ea (7 revisions) (flutter/flutter#164404)
2025-02-28 matej.knopp@gmail.com [macOS] Prepare FlutterKeyboardManager for multi-view (flutter/flutter#163962)
2025-02-28 matej.knopp@gmail.com Add PlatformDispatcher.engineId (flutter/flutter#163476)
2025-02-28 matanlurey@users.noreply.github.com Move `integration_test.FlutterDeviceScreenshotTest` to the framework slow shard (flutter/flutter#164398)
2025-02-28 34465683+rkishan516@users.noreply.github.com Fix: Update DelegatedTransition animation parameter correctly (flutter/flutter#163853)
2025-02-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Write an identical value to `bin/cache/engine.stamp` to prepare for migration (#164317)" (flutter/flutter#164396)
2025-02-28 47989573+Hannnes1@users.noreply.github.com Add action for configuring default action of EditableText.onTapUpOutside (flutter/flutter#162575)
2025-02-28 reidbaker@google.com Align jvmTarget usages across codebase, while editing build.gradle files align them with android version documentation (flutter/flutter#164200)
2025-02-28 engine-flutter-autoroll@skia.org Roll Packages from 01d3d5c to 70b41e1 (5 revisions) (flutter/flutter#164380)
2025-02-28 51940183+Sameri11@users.noreply.github.com [tool] Allow using archiveName in android bundle build (flutter/flutter#162390)
2025-02-28 ueman@users.noreply.github.com Fix incorrectly checking for invalid environment variables in the tool (flutter/flutter#164101)
2025-02-28 robert.ancell@canonical.com Support forward and back buttons (flutter/flutter#164356)
2025-02-28 robert.ancell@canonical.com Fix window creation callback for multi-window (flutter/flutter#164353)
2025-02-28 robert.ancell@canonical.com Fix flutter doctor usage of eglinfo in failure cases. (flutter/flutter#164334)
2025-02-28 sigurdm@google.com  Refactor writing of package config in tests (flutter/flutter#163734)
2025-02-28 ybz975218925@gmail.com Fixed the issue that Slider's secondaryTrackValue is not updated. (flutter/flutter#163996)
2025-02-28 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#164357)
2025-02-28 codefu@google.com Remove `Mac mac_unopt` presubmit retry count (flutter/flutter#164350)
2025-02-28 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 1elkOxihZuTEiTXzY... to QMun2itYrV_zUYrvW... (flutter/flutter#164351)
2025-02-28 ybz975218925@gmail.com Drag handles only need to be tested on mobile platforms. (flutter/flutter#163723)
2025-02-28 jonahwilliams@google.com [Android] Use java for looking up Android API level. (flutter/flutter#163558)
2025-02-28 matanlurey@users.noreply.github.com Write an identical value to `bin/cache/engine.stamp` to prepare for migration (flutter/flutter#164317)
2025-02-27 47866232+chunhtai@users.noreply.github.com Wires up expanded state in web engine (flutter/flutter#164048)
2025-02-27 matanlurey@users.noreply.github.com Remove Cheserton's File (flutter/flutter#164340)
2025-02-27 robert.ancell@canonical.com Replace update semantics handler with signal. (flutter/flutter#163583)
2025-02-27 30870216+gaaclarke@users.noreply.github.com Split up the conical gradient fragment shader (flutter/flutter#164058)
2025-02-27 engine-flutter-autoroll@skia.org Roll Skia from c16b145749d4 to 4005ba3ca7b6 (3 revisions) (flutter/flutter#164339)
2025-02-27 matanlurey@users.noreply.github.com Delete and update stale documentation regarding engine/engine hash. (flutter/flutter#164324)
2025-02-27 matanlurey@users.noreply.github.com Document how `engine.version` (is/will be) computed (flutter/flutter#164335)
2025-02-27 christopherfujino@gmail.com Update conductor to write engine.version file (flutter/flutter#163350)
2025-02-27 reidbaker@google.com remove last usages of min/compile/target SdkVersion, align sourceCompatibility across repo and update android version documentation (flutter/flutter#164198)
2025-02-27 matanlurey@users.noreply.github.com Update links to the `flutter/engine` repository for the monorepo. (flutter/flutter#164328)
2025-02-27 34871572+gmackall@users.noreply.github.com Add empty `io.flutter.app.FlutterApplication` to give deprecation notice, and un-break projects that have not migrated (flutter/flutter#164233)
2025-02-27 aam@google.com Revert dart sdks that were causing dartaotruntime issues in g3  (flutter/flutter#164307)
...
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
Roll Flutter from 2e570ca to 842db35 (59 revisions)

flutter/flutter@2e570ca...842db35

2025-03-02 engine-flutter-autoroll@skia.org Roll Skia from ad64415050aa to 101eee8fce59 (1 revision) (flutter/flutter#164449)
2025-03-02 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from ln3joxJfRN2XGhvCv... to AO1KirSDI7-MVYNPN... (flutter/flutter#164440)
2025-03-02 chris@bracken.jp android: Clean up gen_snapshot artifact build (flutter/flutter#164418)
2025-03-02 matanlurey@users.noreply.github.com Start using `bin/cache/engine.{stamp|realm}` instead of `bin/internal/engine.{realm|version}`. (flutter/flutter#164352)
2025-03-01 chris@bracken.jp Add macos/android_debug_unopt to local_engine.json (flutter/flutter#164410)
2025-03-01 chris@bracken.jp Delete unused build archive targets (flutter/flutter#164414)
2025-03-01 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from QMun2itYrV_zUYrvW... to ln3joxJfRN2XGhvCv... (flutter/flutter#164423)
2025-03-01 engine-flutter-autoroll@skia.org Roll Skia from ac14158663ea to ad64415050aa (1 revision) (flutter/flutter#164413)
2025-03-01 eric@shorebird.dev Update linux_host_engine.json ci/host_release description (flutter/flutter#164402)
2025-03-01 jason-simmons@users.noreply.github.com In update_engine_version_test.dart, do not populate the test environment with the host platform environment (flutter/flutter#164395)
2025-03-01 matanlurey@users.noreply.github.com Roll-forward #164317: Use `bin/cache/engine.stamp` (flutter/flutter#164401)
2025-02-28 ybz975218925@gmail.com Make pressing and moving on CupertinoButton closer to native behavior. (flutter/flutter#161731)
2025-02-28 engine-flutter-autoroll@skia.org Roll Skia from 4005ba3ca7b6 to ac14158663ea (7 revisions) (flutter/flutter#164404)
2025-02-28 matej.knopp@gmail.com [macOS] Prepare FlutterKeyboardManager for multi-view (flutter/flutter#163962)
2025-02-28 matej.knopp@gmail.com Add PlatformDispatcher.engineId (flutter/flutter#163476)
2025-02-28 matanlurey@users.noreply.github.com Move `integration_test.FlutterDeviceScreenshotTest` to the framework slow shard (flutter/flutter#164398)
2025-02-28 34465683+rkishan516@users.noreply.github.com Fix: Update DelegatedTransition animation parameter correctly (flutter/flutter#163853)
2025-02-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Write an identical value to `bin/cache/engine.stamp` to prepare for migration (#164317)" (flutter/flutter#164396)
2025-02-28 47989573+Hannnes1@users.noreply.github.com Add action for configuring default action of EditableText.onTapUpOutside (flutter/flutter#162575)
2025-02-28 reidbaker@google.com Align jvmTarget usages across codebase, while editing build.gradle files align them with android version documentation (flutter/flutter#164200)
2025-02-28 engine-flutter-autoroll@skia.org Roll Packages from 01d3d5c to 70b41e1 (5 revisions) (flutter/flutter#164380)
2025-02-28 51940183+Sameri11@users.noreply.github.com [tool] Allow using archiveName in android bundle build (flutter/flutter#162390)
2025-02-28 ueman@users.noreply.github.com Fix incorrectly checking for invalid environment variables in the tool (flutter/flutter#164101)
2025-02-28 robert.ancell@canonical.com Support forward and back buttons (flutter/flutter#164356)
2025-02-28 robert.ancell@canonical.com Fix window creation callback for multi-window (flutter/flutter#164353)
2025-02-28 robert.ancell@canonical.com Fix flutter doctor usage of eglinfo in failure cases. (flutter/flutter#164334)
2025-02-28 sigurdm@google.com  Refactor writing of package config in tests (flutter/flutter#163734)
2025-02-28 ybz975218925@gmail.com Fixed the issue that Slider's secondaryTrackValue is not updated. (flutter/flutter#163996)
2025-02-28 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#164357)
2025-02-28 codefu@google.com Remove `Mac mac_unopt` presubmit retry count (flutter/flutter#164350)
2025-02-28 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 1elkOxihZuTEiTXzY... to QMun2itYrV_zUYrvW... (flutter/flutter#164351)
2025-02-28 ybz975218925@gmail.com Drag handles only need to be tested on mobile platforms. (flutter/flutter#163723)
2025-02-28 jonahwilliams@google.com [Android] Use java for looking up Android API level. (flutter/flutter#163558)
2025-02-28 matanlurey@users.noreply.github.com Write an identical value to `bin/cache/engine.stamp` to prepare for migration (flutter/flutter#164317)
2025-02-27 47866232+chunhtai@users.noreply.github.com Wires up expanded state in web engine (flutter/flutter#164048)
2025-02-27 matanlurey@users.noreply.github.com Remove Cheserton's File (flutter/flutter#164340)
2025-02-27 robert.ancell@canonical.com Replace update semantics handler with signal. (flutter/flutter#163583)
2025-02-27 30870216+gaaclarke@users.noreply.github.com Split up the conical gradient fragment shader (flutter/flutter#164058)
2025-02-27 engine-flutter-autoroll@skia.org Roll Skia from c16b145749d4 to 4005ba3ca7b6 (3 revisions) (flutter/flutter#164339)
2025-02-27 matanlurey@users.noreply.github.com Delete and update stale documentation regarding engine/engine hash. (flutter/flutter#164324)
2025-02-27 matanlurey@users.noreply.github.com Document how `engine.version` (is/will be) computed (flutter/flutter#164335)
2025-02-27 christopherfujino@gmail.com Update conductor to write engine.version file (flutter/flutter#163350)
2025-02-27 reidbaker@google.com remove last usages of min/compile/target SdkVersion, align sourceCompatibility across repo and update android version documentation (flutter/flutter#164198)
2025-02-27 matanlurey@users.noreply.github.com Update links to the `flutter/engine` repository for the monorepo. (flutter/flutter#164328)
2025-02-27 34871572+gmackall@users.noreply.github.com Add empty `io.flutter.app.FlutterApplication` to give deprecation notice, and un-break projects that have not migrated (flutter/flutter#164233)
2025-02-27 aam@google.com Revert dart sdks that were causing dartaotruntime issues in g3  (flutter/flutter#164307)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: desktop Running on desktop engine flutter/engine related. See also e: labels. platform-macos
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants