-
Notifications
You must be signed in to change notification settings - Fork 28.7k
[macOS] Prepare TextInputPlugin for multi-view #164014
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
4b578b3
to
429fc13
Compare
Ping @dkwingsmt or @justinmc perhaps? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thank you!
self.automaticTextCompletionEnabled = EnableAutocomplete(config); | ||
if (@available(macOS 11.0, *)) { | ||
self.contentType = GetTextContentType(config); | ||
} | ||
|
||
_activeModel = std::make_unique<flutter::TextInputModel>(); | ||
NSNumber* viewId = config[kViewId]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it break existing apps that create such messages manually and doesn't add view ID? Should it default to implicit view ID?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are any applications out there creating the messages manually instead of using the text input client, which always puts the viewId? I'd hope not.
// Returns the text input plugin associated with this view controller. | ||
// This method only returns non nil instance if the text input plugin has active | ||
// client with viewId matching this controller's view identifier. | ||
- (FlutterTextInputPlugin*)textInputPlugin { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm concerned that this name might cause trouble if a maintainer does not read the doc carefully. Shall we rename it to something like matchingTextInputPlugin
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a good point. I'll rename it to activeTextInputPlugin
.
429fc13
to
c9b723b
Compare
Notable changes:
FlutterTextInputPlugin
is now owned byFlutterEngine
.FlutterTextInputPlugin
is only associated with aFlutterViewController
while having active IME connection.TextInputPlugin
from properties to ivars. There is no need for these to be properties, and the state was accessed both as ivars and properties which seemed inconsistent.I've also tested everything including voice-over to make sure accessibility didn't regress.
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.