From ff7636ea01f530dcb0477c0c8e43caa3318e144e Mon Sep 17 00:00:00 2001 From: Megamouse Date: Mon, 25 Apr 2022 19:17:33 +0200 Subject: [PATCH] OSK/overlays: handle keyboard enter and escape --- rpcs3/Emu/RSX/Overlays/overlay_osk.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/rpcs3/Emu/RSX/Overlays/overlay_osk.cpp b/rpcs3/Emu/RSX/Overlays/overlay_osk.cpp index 82c53c9a81..f457c795d2 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_osk.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_osk.cpp @@ -681,18 +681,28 @@ namespace rsx } // Handle special input - if (!found_key && !out_key_string.empty()) + if (!found_key) { - switch (out_key_string[0]) + switch (out_key_code) { - case ' ': + case CELL_KEYC_SPACE: on_space(u32_string); break; - case '\b': + case CELL_KEYC_BS: on_backspace(u32_string); break; - case '\n': - on_enter(u32_string); + case CELL_KEYC_ESCAPE: + Close(CELL_OSKDIALOG_CLOSE_CANCEL); + break; + case CELL_KEYC_ENTER: + if ((flags & CELL_OSKDIALOG_NO_RETURN)) + { + Close(CELL_OSKDIALOG_CLOSE_CONFIRM); + } + else + { + on_enter(u32_string); + } break; default: break;