diff options
| -rw-r--r-- | src/core/frontend/applets/software_keyboard.cpp | 5 | ||||
| -rw-r--r-- | src/core/frontend/applets/software_keyboard.h | 6 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/applet_software_keyboard.cpp | 20 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/applet_software_keyboard.h | 3 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_software_keyboard.cpp | 9 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_software_keyboard.h | 12 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 5 | ||||
| -rw-r--r-- | src/yuzu/main.h | 2 |
8 files changed, 36 insertions, 26 deletions
diff --git a/src/core/frontend/applets/software_keyboard.cpp b/src/core/frontend/applets/software_keyboard.cpp index 12c76c9ee..c4863ee73 100644 --- a/src/core/frontend/applets/software_keyboard.cpp +++ b/src/core/frontend/applets/software_keyboard.cpp | |||
| @@ -16,7 +16,8 @@ DefaultSoftwareKeyboardApplet::~DefaultSoftwareKeyboardApplet() = default; | |||
| 16 | 16 | ||
| 17 | void DefaultSoftwareKeyboardApplet::InitializeKeyboard( | 17 | void DefaultSoftwareKeyboardApplet::InitializeKeyboard( |
| 18 | bool is_inline, KeyboardInitializeParameters initialize_parameters, | 18 | bool is_inline, KeyboardInitializeParameters initialize_parameters, |
| 19 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string)> submit_normal_callback_, | 19 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string, bool)> |
| 20 | submit_normal_callback_, | ||
| 20 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> | 21 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> |
| 21 | submit_inline_callback_) { | 22 | submit_inline_callback_) { |
| 22 | if (is_inline) { | 23 | if (is_inline) { |
| @@ -128,7 +129,7 @@ void DefaultSoftwareKeyboardApplet::ExitKeyboard() const { | |||
| 128 | } | 129 | } |
| 129 | 130 | ||
| 130 | void DefaultSoftwareKeyboardApplet::SubmitNormalText(std::u16string text) const { | 131 | void DefaultSoftwareKeyboardApplet::SubmitNormalText(std::u16string text) const { |
| 131 | submit_normal_callback(Service::AM::Applets::SwkbdResult::Ok, text); | 132 | submit_normal_callback(Service::AM::Applets::SwkbdResult::Ok, text, true); |
| 132 | } | 133 | } |
| 133 | 134 | ||
| 134 | void DefaultSoftwareKeyboardApplet::SubmitInlineText(std::u16string_view text) const { | 135 | void DefaultSoftwareKeyboardApplet::SubmitInlineText(std::u16string_view text) const { |
diff --git a/src/core/frontend/applets/software_keyboard.h b/src/core/frontend/applets/software_keyboard.h index 29109306b..490c55cc2 100644 --- a/src/core/frontend/applets/software_keyboard.h +++ b/src/core/frontend/applets/software_keyboard.h | |||
| @@ -57,7 +57,7 @@ public: | |||
| 57 | 57 | ||
| 58 | virtual void InitializeKeyboard( | 58 | virtual void InitializeKeyboard( |
| 59 | bool is_inline, KeyboardInitializeParameters initialize_parameters, | 59 | bool is_inline, KeyboardInitializeParameters initialize_parameters, |
| 60 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string)> | 60 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string, bool)> |
| 61 | submit_normal_callback_, | 61 | submit_normal_callback_, |
| 62 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> | 62 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> |
| 63 | submit_inline_callback_) = 0; | 63 | submit_inline_callback_) = 0; |
| @@ -82,7 +82,7 @@ public: | |||
| 82 | 82 | ||
| 83 | void InitializeKeyboard( | 83 | void InitializeKeyboard( |
| 84 | bool is_inline, KeyboardInitializeParameters initialize_parameters, | 84 | bool is_inline, KeyboardInitializeParameters initialize_parameters, |
| 85 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string)> | 85 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string, bool)> |
| 86 | submit_normal_callback_, | 86 | submit_normal_callback_, |
| 87 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> | 87 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> |
| 88 | submit_inline_callback_) override; | 88 | submit_inline_callback_) override; |
| @@ -106,7 +106,7 @@ private: | |||
| 106 | 106 | ||
| 107 | KeyboardInitializeParameters parameters; | 107 | KeyboardInitializeParameters parameters; |
| 108 | 108 | ||
| 109 | mutable std::function<void(Service::AM::Applets::SwkbdResult, std::u16string)> | 109 | mutable std::function<void(Service::AM::Applets::SwkbdResult, std::u16string, bool)> |
| 110 | submit_normal_callback; | 110 | submit_normal_callback; |
| 111 | mutable std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> | 111 | mutable std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> |
| 112 | submit_inline_callback; | 112 | submit_inline_callback; |
diff --git a/src/core/hle/service/am/applets/applet_software_keyboard.cpp b/src/core/hle/service/am/applets/applet_software_keyboard.cpp index c89aa1bbf..1f21cee91 100644 --- a/src/core/hle/service/am/applets/applet_software_keyboard.cpp +++ b/src/core/hle/service/am/applets/applet_software_keyboard.cpp | |||
| @@ -109,13 +109,18 @@ void SoftwareKeyboard::Execute() { | |||
| 109 | ShowNormalKeyboard(); | 109 | ShowNormalKeyboard(); |
| 110 | } | 110 | } |
| 111 | 111 | ||
| 112 | void SoftwareKeyboard::SubmitTextNormal(SwkbdResult result, std::u16string submitted_text) { | 112 | void SoftwareKeyboard::SubmitTextNormal(SwkbdResult result, std::u16string submitted_text, |
| 113 | bool confirmed) { | ||
| 113 | if (complete) { | 114 | if (complete) { |
| 114 | return; | 115 | return; |
| 115 | } | 116 | } |
| 116 | 117 | ||
| 117 | if (swkbd_config_common.use_text_check && result == SwkbdResult::Ok) { | 118 | if (swkbd_config_common.use_text_check && result == SwkbdResult::Ok) { |
| 118 | SubmitForTextCheck(submitted_text); | 119 | if (confirmed) { |
| 120 | SubmitNormalOutputAndExit(result, submitted_text); | ||
| 121 | } else { | ||
| 122 | SubmitForTextCheck(submitted_text); | ||
| 123 | } | ||
| 119 | } else { | 124 | } else { |
| 120 | SubmitNormalOutputAndExit(result, submitted_text); | 125 | SubmitNormalOutputAndExit(result, submitted_text); |
| 121 | } | 126 | } |
| @@ -583,11 +588,12 @@ void SoftwareKeyboard::InitializeFrontendKeyboard() { | |||
| 583 | .disable_cancel_button{disable_cancel_button}, | 588 | .disable_cancel_button{disable_cancel_button}, |
| 584 | }; | 589 | }; |
| 585 | 590 | ||
| 586 | frontend.InitializeKeyboard(false, std::move(initialize_parameters), | 591 | frontend.InitializeKeyboard( |
| 587 | [this](SwkbdResult result, std::u16string submitted_text) { | 592 | false, std::move(initialize_parameters), |
| 588 | SubmitTextNormal(result, submitted_text); | 593 | [this](SwkbdResult result, std::u16string submitted_text, bool confirmed) { |
| 589 | }, | 594 | SubmitTextNormal(result, submitted_text, confirmed); |
| 590 | {}); | 595 | }, |
| 596 | {}); | ||
| 591 | } | 597 | } |
| 592 | } | 598 | } |
| 593 | 599 | ||
diff --git a/src/core/hle/service/am/applets/applet_software_keyboard.h b/src/core/hle/service/am/applets/applet_software_keyboard.h index 6009c10c7..a0fddd965 100644 --- a/src/core/hle/service/am/applets/applet_software_keyboard.h +++ b/src/core/hle/service/am/applets/applet_software_keyboard.h | |||
| @@ -36,8 +36,9 @@ public: | |||
| 36 | * | 36 | * |
| 37 | * @param result SwkbdResult enum | 37 | * @param result SwkbdResult enum |
| 38 | * @param submitted_text UTF-16 encoded string | 38 | * @param submitted_text UTF-16 encoded string |
| 39 | * @param confirmed Whether the text has been confirmed after TextCheckResult::Confirm | ||
| 39 | */ | 40 | */ |
| 40 | void SubmitTextNormal(SwkbdResult result, std::u16string submitted_text); | 41 | void SubmitTextNormal(SwkbdResult result, std::u16string submitted_text, bool confirmed); |
| 41 | 42 | ||
| 42 | /** | 43 | /** |
| 43 | * Submits the input text to the application. | 44 | * Submits the input text to the application. |
diff --git a/src/yuzu/applets/qt_software_keyboard.cpp b/src/yuzu/applets/qt_software_keyboard.cpp index 8fc0c5a36..a83a11a95 100644 --- a/src/yuzu/applets/qt_software_keyboard.cpp +++ b/src/yuzu/applets/qt_software_keyboard.cpp | |||
| @@ -413,7 +413,7 @@ void QtSoftwareKeyboardDialog::ShowTextCheckDialog( | |||
| 413 | ? ui->text_edit_osk->toPlainText().toStdU16String() | 413 | ? ui->text_edit_osk->toPlainText().toStdU16String() |
| 414 | : ui->line_edit_osk->text().toStdU16String(); | 414 | : ui->line_edit_osk->text().toStdU16String(); |
| 415 | 415 | ||
| 416 | emit SubmitNormalText(SwkbdResult::Ok, std::move(text)); | 416 | emit SubmitNormalText(SwkbdResult::Ok, std::move(text), true); |
| 417 | break; | 417 | break; |
| 418 | } | 418 | } |
| 419 | } | 419 | } |
| @@ -1510,7 +1510,8 @@ QtSoftwareKeyboard::~QtSoftwareKeyboard() = default; | |||
| 1510 | 1510 | ||
| 1511 | void QtSoftwareKeyboard::InitializeKeyboard( | 1511 | void QtSoftwareKeyboard::InitializeKeyboard( |
| 1512 | bool is_inline, Core::Frontend::KeyboardInitializeParameters initialize_parameters, | 1512 | bool is_inline, Core::Frontend::KeyboardInitializeParameters initialize_parameters, |
| 1513 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string)> submit_normal_callback_, | 1513 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string, bool)> |
| 1514 | submit_normal_callback_, | ||
| 1514 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> | 1515 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> |
| 1515 | submit_inline_callback_) { | 1516 | submit_inline_callback_) { |
| 1516 | if (is_inline) { | 1517 | if (is_inline) { |
| @@ -1609,8 +1610,8 @@ void QtSoftwareKeyboard::ExitKeyboard() const { | |||
| 1609 | } | 1610 | } |
| 1610 | 1611 | ||
| 1611 | void QtSoftwareKeyboard::SubmitNormalText(Service::AM::Applets::SwkbdResult result, | 1612 | void QtSoftwareKeyboard::SubmitNormalText(Service::AM::Applets::SwkbdResult result, |
| 1612 | std::u16string submitted_text) const { | 1613 | std::u16string submitted_text, bool confirmed) const { |
| 1613 | submit_normal_callback(result, submitted_text); | 1614 | submit_normal_callback(result, submitted_text, confirmed); |
| 1614 | } | 1615 | } |
| 1615 | 1616 | ||
| 1616 | void QtSoftwareKeyboard::SubmitInlineText(Service::AM::Applets::SwkbdReplyType reply_type, | 1617 | void QtSoftwareKeyboard::SubmitInlineText(Service::AM::Applets::SwkbdReplyType reply_type, |
diff --git a/src/yuzu/applets/qt_software_keyboard.h b/src/yuzu/applets/qt_software_keyboard.h index 1a03c098c..592d9c085 100644 --- a/src/yuzu/applets/qt_software_keyboard.h +++ b/src/yuzu/applets/qt_software_keyboard.h | |||
| @@ -51,8 +51,8 @@ public: | |||
| 51 | void ExitKeyboard(); | 51 | void ExitKeyboard(); |
| 52 | 52 | ||
| 53 | signals: | 53 | signals: |
| 54 | void SubmitNormalText(Service::AM::Applets::SwkbdResult result, | 54 | void SubmitNormalText(Service::AM::Applets::SwkbdResult result, std::u16string submitted_text, |
| 55 | std::u16string submitted_text) const; | 55 | bool confirmed = false) const; |
| 56 | 56 | ||
| 57 | void SubmitInlineText(Service::AM::Applets::SwkbdReplyType reply_type, | 57 | void SubmitInlineText(Service::AM::Applets::SwkbdReplyType reply_type, |
| 58 | std::u16string submitted_text, s32 cursor_position) const; | 58 | std::u16string submitted_text, s32 cursor_position) const; |
| @@ -234,7 +234,7 @@ public: | |||
| 234 | 234 | ||
| 235 | void InitializeKeyboard( | 235 | void InitializeKeyboard( |
| 236 | bool is_inline, Core::Frontend::KeyboardInitializeParameters initialize_parameters, | 236 | bool is_inline, Core::Frontend::KeyboardInitializeParameters initialize_parameters, |
| 237 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string)> | 237 | std::function<void(Service::AM::Applets::SwkbdResult, std::u16string, bool)> |
| 238 | submit_normal_callback_, | 238 | submit_normal_callback_, |
| 239 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> | 239 | std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> |
| 240 | submit_inline_callback_) override; | 240 | submit_inline_callback_) override; |
| @@ -272,13 +272,13 @@ signals: | |||
| 272 | void MainWindowExitKeyboard() const; | 272 | void MainWindowExitKeyboard() const; |
| 273 | 273 | ||
| 274 | private: | 274 | private: |
| 275 | void SubmitNormalText(Service::AM::Applets::SwkbdResult result, | 275 | void SubmitNormalText(Service::AM::Applets::SwkbdResult result, std::u16string submitted_text, |
| 276 | std::u16string submitted_text) const; | 276 | bool confirmed) const; |
| 277 | 277 | ||
| 278 | void SubmitInlineText(Service::AM::Applets::SwkbdReplyType reply_type, | 278 | void SubmitInlineText(Service::AM::Applets::SwkbdReplyType reply_type, |
| 279 | std::u16string submitted_text, s32 cursor_position) const; | 279 | std::u16string submitted_text, s32 cursor_position) const; |
| 280 | 280 | ||
| 281 | mutable std::function<void(Service::AM::Applets::SwkbdResult, std::u16string)> | 281 | mutable std::function<void(Service::AM::Applets::SwkbdResult, std::u16string, bool)> |
| 282 | submit_normal_callback; | 282 | submit_normal_callback; |
| 283 | mutable std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> | 283 | mutable std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)> |
| 284 | submit_inline_callback; | 284 | submit_inline_callback; |
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index f6fb23085..5c767e8f2 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -483,8 +483,9 @@ void GMainWindow::SoftwareKeyboardInitialize( | |||
| 483 | } else { | 483 | } else { |
| 484 | connect( | 484 | connect( |
| 485 | software_keyboard, &QtSoftwareKeyboardDialog::SubmitNormalText, this, | 485 | software_keyboard, &QtSoftwareKeyboardDialog::SubmitNormalText, this, |
| 486 | [this](Service::AM::Applets::SwkbdResult result, std::u16string submitted_text) { | 486 | [this](Service::AM::Applets::SwkbdResult result, std::u16string submitted_text, |
| 487 | emit SoftwareKeyboardSubmitNormalText(result, submitted_text); | 487 | bool confirmed) { |
| 488 | emit SoftwareKeyboardSubmitNormalText(result, submitted_text, confirmed); | ||
| 488 | }, | 489 | }, |
| 489 | Qt::QueuedConnection); | 490 | Qt::QueuedConnection); |
| 490 | } | 491 | } |
diff --git a/src/yuzu/main.h b/src/yuzu/main.h index aed15a0a0..981102daa 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h | |||
| @@ -150,7 +150,7 @@ signals: | |||
| 150 | void ProfileSelectorFinishedSelection(std::optional<Common::UUID> uuid); | 150 | void ProfileSelectorFinishedSelection(std::optional<Common::UUID> uuid); |
| 151 | 151 | ||
| 152 | void SoftwareKeyboardSubmitNormalText(Service::AM::Applets::SwkbdResult result, | 152 | void SoftwareKeyboardSubmitNormalText(Service::AM::Applets::SwkbdResult result, |
| 153 | std::u16string submitted_text); | 153 | std::u16string submitted_text, bool confirmed); |
| 154 | void SoftwareKeyboardSubmitInlineText(Service::AM::Applets::SwkbdReplyType reply_type, | 154 | void SoftwareKeyboardSubmitInlineText(Service::AM::Applets::SwkbdReplyType reply_type, |
| 155 | std::u16string submitted_text, s32 cursor_position); | 155 | std::u16string submitted_text, s32 cursor_position); |
| 156 | 156 | ||