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.

[self checkModifierFlag:NSEventModifierFlagCapsLock
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 [email protected] Roll Skia from ad64415050aa to 101eee8fce59 (1 revision) (flutter/flutter#164449)
2025-03-02 [email protected] Roll Fuchsia Linux SDK from ln3joxJfRN2XGhvCv... to AO1KirSDI7-MVYNPN... (flutter/flutter#164440)
2025-03-02 [email protected] android: Clean up gen_snapshot artifact build (flutter/flutter#164418)
2025-03-02 [email protected] Start using `bin/cache/engine.{stamp|realm}` instead of `bin/internal/engine.{realm|version}`. (flutter/flutter#164352)
2025-03-01 [email protected] Add macos/android_debug_unopt to local_engine.json (flutter/flutter#164410)
2025-03-01 [email protected] Delete unused build archive targets (flutter/flutter#164414)
2025-03-01 [email protected] Roll Fuchsia Linux SDK from QMun2itYrV_zUYrvW... to ln3joxJfRN2XGhvCv... (flutter/flutter#164423)
2025-03-01 [email protected] Roll Skia from ac14158663ea to ad64415050aa (1 revision) (flutter/flutter#164413)
2025-03-01 [email protected] Update linux_host_engine.json ci/host_release description (flutter/flutter#164402)
2025-03-01 [email protected] In update_engine_version_test.dart, do not populate the test environment with the host platform environment (flutter/flutter#164395)
2025-03-01 [email protected] Roll-forward #164317: Use `bin/cache/engine.stamp` (flutter/flutter#164401)
2025-02-28 [email protected] Make pressing and moving on CupertinoButton closer to native behavior. (flutter/flutter#161731)
2025-02-28 [email protected] Roll Skia from 4005ba3ca7b6 to ac14158663ea (7 revisions) (flutter/flutter#164404)
2025-02-28 [email protected] [macOS] Prepare FlutterKeyboardManager for multi-view (flutter/flutter#163962)
2025-02-28 [email protected] Add PlatformDispatcher.engineId (flutter/flutter#163476)
2025-02-28 [email protected] Move `integration_test.FlutterDeviceScreenshotTest` to the framework slow shard (flutter/flutter#164398)
2025-02-28 [email protected] 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 [email protected] Add action for configuring default action of EditableText.onTapUpOutside (flutter/flutter#162575)
2025-02-28 [email protected] Align jvmTarget usages across codebase, while editing build.gradle files align them with android version documentation (flutter/flutter#164200)
2025-02-28 [email protected] Roll Packages from 01d3d5c to 70b41e1 (5 revisions) (flutter/flutter#164380)
2025-02-28 [email protected] [tool] Allow using archiveName in android bundle build (flutter/flutter#162390)
2025-02-28 [email protected] Fix incorrectly checking for invalid environment variables in the tool (flutter/flutter#164101)
2025-02-28 [email protected] Support forward and back buttons (flutter/flutter#164356)
2025-02-28 [email protected] Fix window creation callback for multi-window (flutter/flutter#164353)
2025-02-28 [email protected] Fix flutter doctor usage of eglinfo in failure cases. (flutter/flutter#164334)
2025-02-28 [email protected]  Refactor writing of package config in tests (flutter/flutter#163734)
2025-02-28 [email protected] Fixed the issue that Slider's secondaryTrackValue is not updated. (flutter/flutter#163996)
2025-02-28 [email protected] Roll pub packages (flutter/flutter#164357)
2025-02-28 [email protected] Remove `Mac mac_unopt` presubmit retry count (flutter/flutter#164350)
2025-02-28 [email protected] Roll Fuchsia Linux SDK from 1elkOxihZuTEiTXzY... to QMun2itYrV_zUYrvW... (flutter/flutter#164351)
2025-02-28 [email protected] Drag handles only need to be tested on mobile platforms. (flutter/flutter#163723)
2025-02-28 [email protected] [Android] Use java for looking up Android API level. (flutter/flutter#163558)
2025-02-28 [email protected] Write an identical value to `bin/cache/engine.stamp` to prepare for migration (flutter/flutter#164317)
2025-02-27 [email protected] Wires up expanded state in web engine (flutter/flutter#164048)
2025-02-27 [email protected] Remove Cheserton's File (flutter/flutter#164340)
2025-02-27 [email protected] Replace update semantics handler with signal. (flutter/flutter#163583)
2025-02-27 [email protected] Split up the conical gradient fragment shader (flutter/flutter#164058)
2025-02-27 [email protected] Roll Skia from c16b145749d4 to 4005ba3ca7b6 (3 revisions) (flutter/flutter#164339)
2025-02-27 [email protected] Delete and update stale documentation regarding engine/engine hash. (flutter/flutter#164324)
2025-02-27 [email protected] Document how `engine.version` (is/will be) computed (flutter/flutter#164335)
2025-02-27 [email protected] Update conductor to write engine.version file (flutter/flutter#163350)
2025-02-27 [email protected] remove last usages of min/compile/target SdkVersion, align sourceCompatibility across repo and update android version documentation (flutter/flutter#164198)
2025-02-27 [email protected] Update links to the `flutter/engine` repository for the monorepo. (flutter/flutter#164328)
2025-02-27 [email protected] Add empty `io.flutter.app.FlutterApplication` to give deprecation notice, and un-break projects that have not migrated (flutter/flutter#164233)
2025-02-27 [email protected] 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 [email protected] Roll Skia from ad64415050aa to 101eee8fce59 (1 revision) (flutter/flutter#164449)
2025-03-02 [email protected] Roll Fuchsia Linux SDK from ln3joxJfRN2XGhvCv... to AO1KirSDI7-MVYNPN... (flutter/flutter#164440)
2025-03-02 [email protected] android: Clean up gen_snapshot artifact build (flutter/flutter#164418)
2025-03-02 [email protected] Start using `bin/cache/engine.{stamp|realm}` instead of `bin/internal/engine.{realm|version}`. (flutter/flutter#164352)
2025-03-01 [email protected] Add macos/android_debug_unopt to local_engine.json (flutter/flutter#164410)
2025-03-01 [email protected] Delete unused build archive targets (flutter/flutter#164414)
2025-03-01 [email protected] Roll Fuchsia Linux SDK from QMun2itYrV_zUYrvW... to ln3joxJfRN2XGhvCv... (flutter/flutter#164423)
2025-03-01 [email protected] Roll Skia from ac14158663ea to ad64415050aa (1 revision) (flutter/flutter#164413)
2025-03-01 [email protected] Update linux_host_engine.json ci/host_release description (flutter/flutter#164402)
2025-03-01 [email protected] In update_engine_version_test.dart, do not populate the test environment with the host platform environment (flutter/flutter#164395)
2025-03-01 [email protected] Roll-forward #164317: Use `bin/cache/engine.stamp` (flutter/flutter#164401)
2025-02-28 [email protected] Make pressing and moving on CupertinoButton closer to native behavior. (flutter/flutter#161731)
2025-02-28 [email protected] Roll Skia from 4005ba3ca7b6 to ac14158663ea (7 revisions) (flutter/flutter#164404)
2025-02-28 [email protected] [macOS] Prepare FlutterKeyboardManager for multi-view (flutter/flutter#163962)
2025-02-28 [email protected] Add PlatformDispatcher.engineId (flutter/flutter#163476)
2025-02-28 [email protected] Move `integration_test.FlutterDeviceScreenshotTest` to the framework slow shard (flutter/flutter#164398)
2025-02-28 [email protected] 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 [email protected] Add action for configuring default action of EditableText.onTapUpOutside (flutter/flutter#162575)
2025-02-28 [email protected] Align jvmTarget usages across codebase, while editing build.gradle files align them with android version documentation (flutter/flutter#164200)
2025-02-28 [email protected] Roll Packages from 01d3d5c to 70b41e1 (5 revisions) (flutter/flutter#164380)
2025-02-28 [email protected] [tool] Allow using archiveName in android bundle build (flutter/flutter#162390)
2025-02-28 [email protected] Fix incorrectly checking for invalid environment variables in the tool (flutter/flutter#164101)
2025-02-28 [email protected] Support forward and back buttons (flutter/flutter#164356)
2025-02-28 [email protected] Fix window creation callback for multi-window (flutter/flutter#164353)
2025-02-28 [email protected] Fix flutter doctor usage of eglinfo in failure cases. (flutter/flutter#164334)
2025-02-28 [email protected]  Refactor writing of package config in tests (flutter/flutter#163734)
2025-02-28 [email protected] Fixed the issue that Slider's secondaryTrackValue is not updated. (flutter/flutter#163996)
2025-02-28 [email protected] Roll pub packages (flutter/flutter#164357)
2025-02-28 [email protected] Remove `Mac mac_unopt` presubmit retry count (flutter/flutter#164350)
2025-02-28 [email protected] Roll Fuchsia Linux SDK from 1elkOxihZuTEiTXzY... to QMun2itYrV_zUYrvW... (flutter/flutter#164351)
2025-02-28 [email protected] Drag handles only need to be tested on mobile platforms. (flutter/flutter#163723)
2025-02-28 [email protected] [Android] Use java for looking up Android API level. (flutter/flutter#163558)
2025-02-28 [email protected] Write an identical value to `bin/cache/engine.stamp` to prepare for migration (flutter/flutter#164317)
2025-02-27 [email protected] Wires up expanded state in web engine (flutter/flutter#164048)
2025-02-27 [email protected] Remove Cheserton's File (flutter/flutter#164340)
2025-02-27 [email protected] Replace update semantics handler with signal. (flutter/flutter#163583)
2025-02-27 [email protected] Split up the conical gradient fragment shader (flutter/flutter#164058)
2025-02-27 [email protected] Roll Skia from c16b145749d4 to 4005ba3ca7b6 (3 revisions) (flutter/flutter#164339)
2025-02-27 [email protected] Delete and update stale documentation regarding engine/engine hash. (flutter/flutter#164324)
2025-02-27 [email protected] Document how `engine.version` (is/will be) computed (flutter/flutter#164335)
2025-02-27 [email protected] Update conductor to write engine.version file (flutter/flutter#163350)
2025-02-27 [email protected] remove last usages of min/compile/target SdkVersion, align sourceCompatibility across repo and update android version documentation (flutter/flutter#164198)
2025-02-27 [email protected] Update links to the `flutter/engine` repository for the monorepo. (flutter/flutter#164328)
2025-02-27 [email protected] Add empty `io.flutter.app.FlutterApplication` to give deprecation notice, and un-break projects that have not migrated (flutter/flutter#164233)
2025-02-27 [email protected] 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 [email protected] Roll Skia from ad64415050aa to 101eee8fce59 (1 revision) (flutter/flutter#164449)
2025-03-02 [email protected] Roll Fuchsia Linux SDK from ln3joxJfRN2XGhvCv... to AO1KirSDI7-MVYNPN... (flutter/flutter#164440)
2025-03-02 [email protected] android: Clean up gen_snapshot artifact build (flutter/flutter#164418)
2025-03-02 [email protected] Start using `bin/cache/engine.{stamp|realm}` instead of `bin/internal/engine.{realm|version}`. (flutter/flutter#164352)
2025-03-01 [email protected] Add macos/android_debug_unopt to local_engine.json (flutter/flutter#164410)
2025-03-01 [email protected] Delete unused build archive targets (flutter/flutter#164414)
2025-03-01 [email protected] Roll Fuchsia Linux SDK from QMun2itYrV_zUYrvW... to ln3joxJfRN2XGhvCv... (flutter/flutter#164423)
2025-03-01 [email protected] Roll Skia from ac14158663ea to ad64415050aa (1 revision) (flutter/flutter#164413)
2025-03-01 [email protected] Update linux_host_engine.json ci/host_release description (flutter/flutter#164402)
2025-03-01 [email protected] In update_engine_version_test.dart, do not populate the test environment with the host platform environment (flutter/flutter#164395)
2025-03-01 [email protected] Roll-forward #164317: Use `bin/cache/engine.stamp` (flutter/flutter#164401)
2025-02-28 [email protected] Make pressing and moving on CupertinoButton closer to native behavior. (flutter/flutter#161731)
2025-02-28 [email protected] Roll Skia from 4005ba3ca7b6 to ac14158663ea (7 revisions) (flutter/flutter#164404)
2025-02-28 [email protected] [macOS] Prepare FlutterKeyboardManager for multi-view (flutter/flutter#163962)
2025-02-28 [email protected] Add PlatformDispatcher.engineId (flutter/flutter#163476)
2025-02-28 [email protected] Move `integration_test.FlutterDeviceScreenshotTest` to the framework slow shard (flutter/flutter#164398)
2025-02-28 [email protected] 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 [email protected] Add action for configuring default action of EditableText.onTapUpOutside (flutter/flutter#162575)
2025-02-28 [email protected] Align jvmTarget usages across codebase, while editing build.gradle files align them with android version documentation (flutter/flutter#164200)
2025-02-28 [email protected] Roll Packages from 01d3d5c to 70b41e1 (5 revisions) (flutter/flutter#164380)
2025-02-28 [email protected] [tool] Allow using archiveName in android bundle build (flutter/flutter#162390)
2025-02-28 [email protected] Fix incorrectly checking for invalid environment variables in the tool (flutter/flutter#164101)
2025-02-28 [email protected] Support forward and back buttons (flutter/flutter#164356)
2025-02-28 [email protected] Fix window creation callback for multi-window (flutter/flutter#164353)
2025-02-28 [email protected] Fix flutter doctor usage of eglinfo in failure cases. (flutter/flutter#164334)
2025-02-28 [email protected]  Refactor writing of package config in tests (flutter/flutter#163734)
2025-02-28 [email protected] Fixed the issue that Slider's secondaryTrackValue is not updated. (flutter/flutter#163996)
2025-02-28 [email protected] Roll pub packages (flutter/flutter#164357)
2025-02-28 [email protected] Remove `Mac mac_unopt` presubmit retry count (flutter/flutter#164350)
2025-02-28 [email protected] Roll Fuchsia Linux SDK from 1elkOxihZuTEiTXzY... to QMun2itYrV_zUYrvW... (flutter/flutter#164351)
2025-02-28 [email protected] Drag handles only need to be tested on mobile platforms. (flutter/flutter#163723)
2025-02-28 [email protected] [Android] Use java for looking up Android API level. (flutter/flutter#163558)
2025-02-28 [email protected] Write an identical value to `bin/cache/engine.stamp` to prepare for migration (flutter/flutter#164317)
2025-02-27 [email protected] Wires up expanded state in web engine (flutter/flutter#164048)
2025-02-27 [email protected] Remove Cheserton's File (flutter/flutter#164340)
2025-02-27 [email protected] Replace update semantics handler with signal. (flutter/flutter#163583)
2025-02-27 [email protected] Split up the conical gradient fragment shader (flutter/flutter#164058)
2025-02-27 [email protected] Roll Skia from c16b145749d4 to 4005ba3ca7b6 (3 revisions) (flutter/flutter#164339)
2025-02-27 [email protected] Delete and update stale documentation regarding engine/engine hash. (flutter/flutter#164324)
2025-02-27 [email protected] Document how `engine.version` (is/will be) computed (flutter/flutter#164335)
2025-02-27 [email protected] Update conductor to write engine.version file (flutter/flutter#163350)
2025-02-27 [email protected] remove last usages of min/compile/target SdkVersion, align sourceCompatibility across repo and update android version documentation (flutter/flutter#164198)
2025-02-27 [email protected] Update links to the `flutter/engine` repository for the monorepo. (flutter/flutter#164328)
2025-02-27 [email protected] Add empty `io.flutter.app.FlutterApplication` to give deprecation notice, and un-break projects that have not migrated (flutter/flutter#164233)
2025-02-27 [email protected] 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