Fix the breaking of multi-code-unit characters in obscure mode (#123366)
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
Showing
This diff is collapsed.
Please register or sign in to comment