You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-04 17:04:49 +00:00
Fix Android onTextChanged crash
As it turns out, onTextChanged supplies a mutable CharSequence, which lead to crashes or unexpected behaviour when input was coming faster than it was processed.
This commit is contained in:
@@ -103,13 +103,16 @@ public class GodotTextInputWrapper implements TextWatcher, OnEditorActionListene
|
|||||||
public void onTextChanged(final CharSequence pCharSequence, final int start, final int before, final int count) {
|
public void onTextChanged(final CharSequence pCharSequence, final int start, final int before, final int count) {
|
||||||
//Log.d(TAG, "onTextChanged(" + pCharSequence + ")start: " + start + ",count: " + count + ",before: " + before);
|
//Log.d(TAG, "onTextChanged(" + pCharSequence + ")start: " + start + ",count: " + count + ",before: " + before);
|
||||||
|
|
||||||
|
final int[] newChars = new int[count];
|
||||||
|
for (int i = start; i < start + count; ++i) {
|
||||||
|
newChars[i - start] = pCharSequence.charAt(i);
|
||||||
|
}
|
||||||
mView.queueEvent(new Runnable() {
|
mView.queueEvent(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
for (int i = start; i < start + count; ++i) {
|
for (int i = 0; i < count; ++i) {
|
||||||
final int ch = pCharSequence.charAt(i);
|
GodotLib.key(0, newChars[i], true);
|
||||||
GodotLib.key(0, ch, true);
|
GodotLib.key(0, newChars[i], false);
|
||||||
GodotLib.key(0, ch, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user