-
Justin McCandless authored
This PR changes the character boundary behavior of obscured fields to be based on code points instead of code units. So it used to be possible to traverse and delete obscured text inside of code points (and breaking a code point like that would cause a crash): ![output2](https://github.com/flutter/flutter/assets/389558/674c89a4-c47d-4cdc-a402-4cadb5d2f73b) But now moving the cursor and deleting is based on code points: ![output1](https://github.com/flutter/flutter/assets/389558/e46301f7-b5af-48d2-812a-0ad649f1383b) ### Native behavior Native iOS deletes part of the emoji, native Mac deletes the whole emoji. See https://github.com/flutter/flutter/issues/122381#issuecomment-1482042620. So it's unclear what the desired behavior should actually be. ### Resources Fixes https://github.com/flutter/flutter/issues/122381 I thought this might not fix the case where a broken emoji is directly pasted into the field, but it seems to work by trying this: �âð
© âð¦âð¦ CC @LongCatIsLooong