summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/frontend/applets/software_keyboard.cpp4
-rw-r--r--src/core/frontend/applets/software_keyboard.h6
-rw-r--r--src/core/hle/service/am/am.cpp6
-rw-r--r--src/core/hle/service/am/applets/software_keyboard.cpp2
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
21void DefaultSoftwareKeyboardApplet::SendTextCheckDialog(std::u16string error_message) const { 21void 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
45class DefaultSoftwareKeyboardApplet final : public SoftwareKeyboardApplet { 46class DefaultSoftwareKeyboardApplet final : public SoftwareKeyboardApplet {
46public: 47public:
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