Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@cbracken
Copy link
Member

@cbracken cbracken commented Jan 20, 2021

When inputting text, the framework computes a transform from local
coordinates to the coordinate system of PipelineOwner.rootNode and
updates the embedder via the TextInput.setEditableSizeAndTransform
message over the channel.

We add a handler for this method which stores this transform in an array
on TextInputPlugin.

In a previous patch, a similar handler was be added for the
TextInput.setMarkedTextRect message. When compose rect is needed in
window coordinates, the rect can be multipled by this 4x4 transform
matrix, so the result may be read by the view/window class and the
IME candidates window position updated.

Note: This PR is currently stacked on top of #23789.

Issues

This is one in a series of patches addressing flutter/flutter#65574: Full IME support for Windows.

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 Hixie said 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.
  • The reviewer has submitted any presubmit flakes in this PR using the engine presubmit flakes form before re-triggering the failure.

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

When inputting text via multi-step text input, such as via Chinese,
Japanese, or Korean IME input methods, the framework computes the
rectangle of the compose text and updates the embedder via the
TextInput.setMarkedTextRect message over the channel.

We add a handler for this method which stores the composing rect as a
field on TextInputPlugin.

In a followup patch, a similar handler will be added for the
TextInput.setEditableSizeAndTransform message. Them when compose rect is
needed in window coordinates, the rect can be multipled by the 4x4
transform matrix, so the result may be fetched by the view/window class
and the IME candidates window position updated.
When inputting text, the framework computes a transform from local
coordinates to the coordinate system of PipelineOwner.rootNode and
updates the embedder via the TextInput.setEditableSizeAndTransform
message over the channel.

We add a handler for this method which stores this transform in an array
on TextInputPlugin.

In a previous patch, a similar handler was be added for the
TextInput.setMarkedTextRect message. When compose rect is needed in
window coordinates, the rect can be multipled by this 4x4 transform
matrix, so the result may be read by the view/window class and the
IME candidates window position updated.
@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat.

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

@google-cla google-cla bot added the cla: yes label Jan 20, 2021
@cbracken
Copy link
Member Author

Included in #23795.

@cbracken cbracken closed this Jan 20, 2021
@cbracken cbracken deleted the windows-ime-editable-size-and-transform branch May 10, 2022 21:17
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant