axmolengine / axmol

Axmol Engine – A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A fork of Cocos2d-x-4.0)
https://axmol.dev
MIT License
929 stars 205 forks source link

Prevent excessive calls to deleteBackward method which may cause crashes on Android #2248

Open rh101 opened 1 day ago

rh101 commented 1 day ago

Describe your changes

The changes in this PR will prevent situations where a call to TextField::deleteBackward is made for every single character when deleting text in large blocks, such as via a Select All -> Backspace operation using the Android virtual keyboard. When many consecutive calls to deleteBackward are made in a single update/frame, it seems to result in a crash.

Just note that this does not change the behavior when the user is deleting one character at a time, since it will still call TextField::deleteBackward once per character. The test cases in cpp-tests, 49:Node: Text Input confirm that the behaviour is still the same.

Issue ticket number and link

This possibly relates to all the following issues:

2240

2241

2242

Checklist before requesting a review

For each PR

For core/new feature PR