Merge pull request #119798 from Voyend/android-soft-keyboard-backspace-fix
Fix backspace being unable to delete pre-existing text in any input field when using a soft keyboard on Android.
This commit is contained in:
+14
@@ -239,6 +239,14 @@ public class GodotEditText extends EditText {
|
||||
return mRenderView.getInputHandler().onKeyDown(keyCode, keyEvent);
|
||||
}
|
||||
|
||||
// If EditText is empty, super.onKeyDown won't modify the Editable,
|
||||
// so beforeTextChanged won't fire and Godot never receives the DEL event.
|
||||
// Forward it directly in that case.
|
||||
if (keyCode == KeyEvent.KEYCODE_DEL && length() == 0) {
|
||||
mRenderView.getInputHandler().handleKeyEvent(KeyEvent.KEYCODE_DEL, 0, 0, true, false);
|
||||
return true;
|
||||
}
|
||||
|
||||
// pass event to godot in special cases
|
||||
if (needHandlingInGodot(keyCode, keyEvent) && mRenderView.getInputHandler().onKeyDown(keyCode, keyEvent)) {
|
||||
return true;
|
||||
@@ -261,6 +269,12 @@ public class GodotEditText extends EditText {
|
||||
return mRenderView.getInputHandler().onKeyUp(keyCode, keyEvent);
|
||||
}
|
||||
|
||||
// Paired release event for the KEYCODE_DEL press forwarded in onKeyDown.
|
||||
if (keyCode == KeyEvent.KEYCODE_DEL && length() == 0) {
|
||||
mRenderView.getInputHandler().handleKeyEvent(KeyEvent.KEYCODE_DEL, 0, 0, false, false);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (needHandlingInGodot(keyCode, keyEvent) && mRenderView.getInputHandler().onKeyUp(keyCode, keyEvent)) {
|
||||
return true;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user