File tree Expand file tree Collapse file tree 1 file changed +13
-0
lines changed
platform/android/java/lib/src/org/godotengine/godot/input Expand file tree Collapse file tree 1 file changed +13
-0
lines changed Original file line number Diff line number Diff 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 {
You can’t perform that action at this time.
0 commit comments