Skip to content

Commit 70f0746

Browse files
committed
Merge pull request #110127 from AayushSarikhada/android-back-gesture-fail-fix
Fix Android back gesture failing after keyboard dismissal
2 parents e870cd9 + 849107c commit 70f0746

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,15 @@ public void setView(final GodotRenderView view) {
221221
public boolean onKeyDown(final int keyCode, final KeyEvent keyEvent) {
222222
/* Let SurfaceView get focus if back key is input. */
223223
if (keyCode == KeyEvent.KEYCODE_BACK) {
224+
// Clear focus from EditText immediately
225+
clearFocus();
226+
227+
// Transfer focus to render view
224228
mRenderView.getView().requestFocus();
229+
230+
// Forward this back key event to the render view's input handler
231+
// since we're no longer the focused view
232+
return mRenderView.getInputHandler().onKeyDown(keyCode, keyEvent);
225233
}
226234

227235
// When a hardware keyboard is connected, all key events come through so we can route them
@@ -248,6 +256,11 @@ public boolean onKeyUp(int keyCode, KeyEvent keyEvent) {
248256
return mRenderView.getInputHandler().onKeyUp(keyCode, keyEvent);
249257
}
250258

259+
// If this is a BACK key and we don't have focus anymore, forward to render view
260+
if (keyCode == KeyEvent.KEYCODE_BACK && !hasFocus()) {
261+
return mRenderView.getInputHandler().onKeyUp(keyCode, keyEvent);
262+
}
263+
251264
if (needHandlingInGodot(keyCode, keyEvent) && mRenderView.getInputHandler().onKeyUp(keyCode, keyEvent)) {
252265
return true;
253266
} else {

0 commit comments

Comments
 (0)