diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/frontend/applets/software_keyboard.cpp | 4 | ||||
| -rw-r--r-- | src/core/frontend/applets/software_keyboard.h | 6 | ||||
| -rw-r--r-- | src/core/hle/service/am/am.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/software_keyboard.cpp | 2 |
4 files changed, 12 insertions, 6 deletions
diff --git a/src/core/frontend/applets/software_keyboard.cpp b/src/core/frontend/applets/software_keyboard.cpp index 4105101b3..856ed33da 100644 --- a/src/core/frontend/applets/software_keyboard.cpp +++ b/src/core/frontend/applets/software_keyboard.cpp | |||
| @@ -18,10 +18,12 @@ void DefaultSoftwareKeyboardApplet::RequestText( | |||
| 18 | out(parameters.initial_text); | 18 | out(parameters.initial_text); |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | void DefaultSoftwareKeyboardApplet::SendTextCheckDialog(std::u16string error_message) const { | 21 | void DefaultSoftwareKeyboardApplet::SendTextCheckDialog( |
| 22 | std::u16string error_message, std::function<void()> finished_check) const { | ||
| 22 | LOG_WARNING(Service_AM, | 23 | LOG_WARNING(Service_AM, |
| 23 | "(STUBBED) called - Default fallback software keyboard does not support text " | 24 | "(STUBBED) called - Default fallback software keyboard does not support text " |
| 24 | "check! (error_message={})", | 25 | "check! (error_message={})", |
| 25 | Common::UTF16ToUTF8(error_message)); | 26 | Common::UTF16ToUTF8(error_message)); |
| 27 | finished_check(); | ||
| 26 | } | 28 | } |
| 27 | } // namespace Core::Frontend | 29 | } // namespace Core::Frontend |
diff --git a/src/core/frontend/applets/software_keyboard.h b/src/core/frontend/applets/software_keyboard.h index 5420ea883..f9b202664 100644 --- a/src/core/frontend/applets/software_keyboard.h +++ b/src/core/frontend/applets/software_keyboard.h | |||
| @@ -39,14 +39,16 @@ public: | |||
| 39 | 39 | ||
| 40 | virtual void RequestText(std::function<void(std::optional<std::u16string>)> out, | 40 | virtual void RequestText(std::function<void(std::optional<std::u16string>)> out, |
| 41 | SoftwareKeyboardParameters parameters) const = 0; | 41 | SoftwareKeyboardParameters parameters) const = 0; |
| 42 | virtual void SendTextCheckDialog(std::u16string error_message) const = 0; | 42 | virtual void SendTextCheckDialog(std::u16string error_message, |
| 43 | std::function<void()> finished_check) const = 0; | ||
| 43 | }; | 44 | }; |
| 44 | 45 | ||
| 45 | class DefaultSoftwareKeyboardApplet final : public SoftwareKeyboardApplet { | 46 | class DefaultSoftwareKeyboardApplet final : public SoftwareKeyboardApplet { |
| 46 | public: | 47 | public: |
| 47 | void RequestText(std::function<void(std::optional<std::u16string>)> out, | 48 | void RequestText(std::function<void(std::optional<std::u16string>)> out, |
| 48 | SoftwareKeyboardParameters parameters) const override; | 49 | SoftwareKeyboardParameters parameters) const override; |
| 49 | void SendTextCheckDialog(std::u16string error_message) const override; | 50 | void SendTextCheckDialog(std::u16string error_message, |
| 51 | std::function<void()> finished_check) const override; | ||
| 50 | }; | 52 | }; |
| 51 | 53 | ||
| 52 | } // namespace Core::Frontend | 54 | } // namespace Core::Frontend |
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index 470253ef1..5cbcb8d91 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp | |||
| @@ -605,8 +605,10 @@ private: | |||
| 605 | ASSERT(applet != nullptr); | 605 | ASSERT(applet != nullptr); |
| 606 | 606 | ||
| 607 | applet->Initialize(storage_stack); | 607 | applet->Initialize(storage_stack); |
| 608 | storage_stack.clear(); | 608 | while (!storage_stack.empty()) |
| 609 | interactive_storage_stack.clear(); | 609 | storage_stack.pop(); |
| 610 | while (!interactive_storage_stack.empty()) | ||
| 611 | interactive_storage_stack.pop(); | ||
| 610 | applet->Execute([this](IStorage storage) { AppletStorageProxyOutData(storage); }, | 612 | applet->Execute([this](IStorage storage) { AppletStorageProxyOutData(storage); }, |
| 611 | [this](IStorage storage) { AppletStorageProxyOutInteractiveData(storage); }, | 613 | [this](IStorage storage) { AppletStorageProxyOutInteractiveData(storage); }, |
| 612 | [this] { state_changed_event->Signal(); }); | 614 | [this] { state_changed_event->Signal(); }); |
diff --git a/src/core/hle/service/am/applets/software_keyboard.cpp b/src/core/hle/service/am/applets/software_keyboard.cpp index bb28a2e8d..039bfcc0f 100644 --- a/src/core/hle/service/am/applets/software_keyboard.cpp +++ b/src/core/hle/service/am/applets/software_keyboard.cpp | |||
| @@ -87,7 +87,7 @@ void SoftwareKeyboard::ReceiveInteractiveData(std::shared_ptr<IStorage> storage) | |||
| 87 | std::array<char16_t, SWKBD_OUTPUT_INTERACTIVE_BUFFER_SIZE / 2 - 2> string; | 87 | std::array<char16_t, SWKBD_OUTPUT_INTERACTIVE_BUFFER_SIZE / 2 - 2> string; |
| 88 | std::memcpy(string.data(), data.data() + 4, string.size() * 2); | 88 | std::memcpy(string.data(), data.data() + 4, string.size() * 2); |
| 89 | frontend.SendTextCheckDialog( | 89 | frontend.SendTextCheckDialog( |
| 90 | Common::UTF16StringFromFixedZeroTerminatedBuffer(string.data(), string.size())); | 90 | Common::UTF16StringFromFixedZeroTerminatedBuffer(string.data(), string.size()), state); |
| 91 | } | 91 | } |
| 92 | } | 92 | } |
| 93 | 93 | ||