Chris Bracken 5c4e20c4c5 Correct handling for composed character ranges at text.length (#3590)
Ensure that both self.text and self.selectedTextRange are updated before
triggering textDidChange: or selectionDidChange: on the input delegate
(which then re-computes positions). This prevents inconsistencies in
selection vs text position/offset lookups triggered by didChange
notifications.

Ensure that rangeOfComposedCharacterSequenceAtIndex: is only ever called
for index values > 0 && < self.text.length. This prevents such calls for
position with index == self.text.length.

Also reduces unnecessary textDidChange/selectionDidChange notifications:
replaceRange:withText: and setMarkedText:selectedRange: are only ever
called by UIKit and methods called by UIKit (insertText,
deleteBackward), so notification is unnecessary.
2017-04-13 11:48:59 -07:00
2017-04-11 14:53:14 -07:00
2017-04-12 13:45:46 -07:00
2017-04-12 13:45:46 -07:00
2017-04-11 14:53:14 -07:00
2017-04-12 13:45:46 -07:00
2017-01-20 13:40:45 -08:00
2017-04-11 14:53:14 -07:00
2016-09-14 10:25:19 -07:00

Flutter Engine

Build Status

Flutter is a new way to build high-performance, cross-platform mobile apps. Flutter is optimized for today's, and tomorrow's, mobile devices. We are focused on low-latency input and high frame rates on Android and iOS.

The Flutter Engine is the runtime environment for hosting Flutter applications. Most developers will interact with Flutter via the Flutter Framework and APIs, which run inside the engine.

Flutter is an early-stage open-source project. We are still adding features. However, you can build demos and examples today. We hope you try it out and send us feedback.

Community

Join us in our Gitter chat room or join our mailing list, flutter-dev@googlegroups.com.

Languages
Dart 75%
C++ 16.5%
Objective-C++ 2.9%
Java 2.8%
Objective-C 0.7%
Other 1.9%