summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Liam2023-03-25 13:29:08 -0400
committerGravatar Liam2023-03-25 14:49:43 -0400
commit50a59487eb49baa229d553dd9a3c00aef20f799f (patch)
tree49ed16c5614ad4772f5183ac7bbbb911ce092c1a /src/core
parentapplets: implement RequestExit (diff)
downloadyuzu-50a59487eb49baa229d553dd9a3c00aef20f799f.tar.gz
yuzu-50a59487eb49baa229d553dd9a3c00aef20f799f.tar.xz
yuzu-50a59487eb49baa229d553dd9a3c00aef20f799f.zip
qt: implement RequestExit for applets
Diffstat (limited to 'src/core')
-rw-r--r--src/core/frontend/applets/applet.h14
-rw-r--r--src/core/frontend/applets/cabinet.cpp2
-rw-r--r--src/core/frontend/applets/cabinet.h4
-rw-r--r--src/core/frontend/applets/controller.cpp2
-rw-r--r--src/core/frontend/applets/controller.h4
-rw-r--r--src/core/frontend/applets/error.cpp2
-rw-r--r--src/core/frontend/applets/error.h4
-rw-r--r--src/core/frontend/applets/general_frontend.cpp4
-rw-r--r--src/core/frontend/applets/general_frontend.h8
-rw-r--r--src/core/frontend/applets/mii_edit.cpp2
-rw-r--r--src/core/frontend/applets/mii_edit.h5
-rw-r--r--src/core/frontend/applets/profile_select.cpp2
-rw-r--r--src/core/frontend/applets/profile_select.h5
-rw-r--r--src/core/frontend/applets/software_keyboard.cpp2
-rw-r--r--src/core/frontend/applets/software_keyboard.h5
-rw-r--r--src/core/frontend/applets/web_browser.cpp2
-rw-r--r--src/core/frontend/applets/web_browser.h5
-rw-r--r--src/core/hle/service/am/applets/applet_cabinet.cpp2
-rw-r--r--src/core/hle/service/am/applets/applet_controller.cpp2
-rw-r--r--src/core/hle/service/am/applets/applet_error.cpp2
-rw-r--r--src/core/hle/service/am/applets/applet_general_backend.cpp4
-rw-r--r--src/core/hle/service/am/applets/applet_mii_edit.cpp2
-rw-r--r--src/core/hle/service/am/applets/applet_profile_select.cpp2
-rw-r--r--src/core/hle/service/am/applets/applet_software_keyboard.cpp2
-rw-r--r--src/core/hle/service/am/applets/applet_web_browser.cpp2
25 files changed, 72 insertions, 18 deletions
diff --git a/src/core/frontend/applets/applet.h b/src/core/frontend/applets/applet.h
new file mode 100644
index 000000000..77fffe306
--- /dev/null
+++ b/src/core/frontend/applets/applet.h
@@ -0,0 +1,14 @@
1// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6namespace Core::Frontend {
7
8class Applet {
9public:
10 virtual ~Applet() = default;
11 virtual void Close() const = 0;
12};
13
14} // namespace Core::Frontend
diff --git a/src/core/frontend/applets/cabinet.cpp b/src/core/frontend/applets/cabinet.cpp
index 26c7fefe3..2d501eeae 100644
--- a/src/core/frontend/applets/cabinet.cpp
+++ b/src/core/frontend/applets/cabinet.cpp
@@ -10,6 +10,8 @@ namespace Core::Frontend {
10 10
11CabinetApplet::~CabinetApplet() = default; 11CabinetApplet::~CabinetApplet() = default;
12 12
13void DefaultCabinetApplet::Close() const {}
14
13void DefaultCabinetApplet::ShowCabinetApplet( 15void DefaultCabinetApplet::ShowCabinetApplet(
14 const CabinetCallback& callback, const CabinetParameters& parameters, 16 const CabinetCallback& callback, const CabinetParameters& parameters,
15 std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const { 17 std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const {
diff --git a/src/core/frontend/applets/cabinet.h b/src/core/frontend/applets/cabinet.h
index c28a235c1..74dc5a4f6 100644
--- a/src/core/frontend/applets/cabinet.h
+++ b/src/core/frontend/applets/cabinet.h
@@ -4,6 +4,7 @@
4#pragma once 4#pragma once
5 5
6#include <functional> 6#include <functional>
7#include "core/frontend/applets/applet.h"
7#include "core/hle/service/nfp/nfp_types.h" 8#include "core/hle/service/nfp/nfp_types.h"
8 9
9namespace Service::NFP { 10namespace Service::NFP {
@@ -20,7 +21,7 @@ struct CabinetParameters {
20 21
21using CabinetCallback = std::function<void(bool, const std::string&)>; 22using CabinetCallback = std::function<void(bool, const std::string&)>;
22 23
23class CabinetApplet { 24class CabinetApplet : public Applet {
24public: 25public:
25 virtual ~CabinetApplet(); 26 virtual ~CabinetApplet();
26 virtual void ShowCabinetApplet(const CabinetCallback& callback, 27 virtual void ShowCabinetApplet(const CabinetCallback& callback,
@@ -30,6 +31,7 @@ public:
30 31
31class DefaultCabinetApplet final : public CabinetApplet { 32class DefaultCabinetApplet final : public CabinetApplet {
32public: 33public:
34 void Close() const override;
33 void ShowCabinetApplet(const CabinetCallback& callback, const CabinetParameters& parameters, 35 void ShowCabinetApplet(const CabinetCallback& callback, const CabinetParameters& parameters,
34 std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const override; 36 std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const override;
35}; 37};
diff --git a/src/core/frontend/applets/controller.cpp b/src/core/frontend/applets/controller.cpp
index 52919484e..8e586e938 100644
--- a/src/core/frontend/applets/controller.cpp
+++ b/src/core/frontend/applets/controller.cpp
@@ -16,6 +16,8 @@ DefaultControllerApplet::DefaultControllerApplet(HID::HIDCore& hid_core_) : hid_
16 16
17DefaultControllerApplet::~DefaultControllerApplet() = default; 17DefaultControllerApplet::~DefaultControllerApplet() = default;
18 18
19void DefaultControllerApplet::Close() const {}
20
19void DefaultControllerApplet::ReconfigureControllers(ReconfigureCallback callback, 21void DefaultControllerApplet::ReconfigureControllers(ReconfigureCallback callback,
20 const ControllerParameters& parameters) const { 22 const ControllerParameters& parameters) const {
21 LOG_INFO(Service_HID, "called, deducing the best configuration based on the given parameters!"); 23 LOG_INFO(Service_HID, "called, deducing the best configuration based on the given parameters!");
diff --git a/src/core/frontend/applets/controller.h b/src/core/frontend/applets/controller.h
index adb2feefd..5c488387d 100644
--- a/src/core/frontend/applets/controller.h
+++ b/src/core/frontend/applets/controller.h
@@ -7,6 +7,7 @@
7#include <vector> 7#include <vector>
8 8
9#include "common/common_types.h" 9#include "common/common_types.h"
10#include "core/frontend/applets/applet.h"
10 11
11namespace Core::HID { 12namespace Core::HID {
12class HIDCore; 13class HIDCore;
@@ -34,7 +35,7 @@ struct ControllerParameters {
34 bool allow_gamecube_controller{}; 35 bool allow_gamecube_controller{};
35}; 36};
36 37
37class ControllerApplet { 38class ControllerApplet : public Applet {
38public: 39public:
39 using ReconfigureCallback = std::function<void()>; 40 using ReconfigureCallback = std::function<void()>;
40 41
@@ -49,6 +50,7 @@ public:
49 explicit DefaultControllerApplet(HID::HIDCore& hid_core_); 50 explicit DefaultControllerApplet(HID::HIDCore& hid_core_);
50 ~DefaultControllerApplet() override; 51 ~DefaultControllerApplet() override;
51 52
53 void Close() const override;
52 void ReconfigureControllers(ReconfigureCallback callback, 54 void ReconfigureControllers(ReconfigureCallback callback,
53 const ControllerParameters& parameters) const override; 55 const ControllerParameters& parameters) const override;
54 56
diff --git a/src/core/frontend/applets/error.cpp b/src/core/frontend/applets/error.cpp
index 69c2b2b4d..2e6f7a3d9 100644
--- a/src/core/frontend/applets/error.cpp
+++ b/src/core/frontend/applets/error.cpp
@@ -8,6 +8,8 @@ namespace Core::Frontend {
8 8
9ErrorApplet::~ErrorApplet() = default; 9ErrorApplet::~ErrorApplet() = default;
10 10
11void DefaultErrorApplet::Close() const {}
12
11void DefaultErrorApplet::ShowError(Result error, FinishedCallback finished) const { 13void DefaultErrorApplet::ShowError(Result error, FinishedCallback finished) const {
12 LOG_CRITICAL(Service_Fatal, "Application requested error display: {:04}-{:04} (raw={:08X})", 14 LOG_CRITICAL(Service_Fatal, "Application requested error display: {:04}-{:04} (raw={:08X})",
13 error.module.Value(), error.description.Value(), error.raw); 15 error.module.Value(), error.description.Value(), error.raw);
diff --git a/src/core/frontend/applets/error.h b/src/core/frontend/applets/error.h
index 884f2f653..3a12196ce 100644
--- a/src/core/frontend/applets/error.h
+++ b/src/core/frontend/applets/error.h
@@ -6,11 +6,12 @@
6#include <chrono> 6#include <chrono>
7#include <functional> 7#include <functional>
8 8
9#include "core/frontend/applets/applet.h"
9#include "core/hle/result.h" 10#include "core/hle/result.h"
10 11
11namespace Core::Frontend { 12namespace Core::Frontend {
12 13
13class ErrorApplet { 14class ErrorApplet : public Applet {
14public: 15public:
15 using FinishedCallback = std::function<void()>; 16 using FinishedCallback = std::function<void()>;
16 17
@@ -28,6 +29,7 @@ public:
28 29
29class DefaultErrorApplet final : public ErrorApplet { 30class DefaultErrorApplet final : public ErrorApplet {
30public: 31public:
32 void Close() const override;
31 void ShowError(Result error, FinishedCallback finished) const override; 33 void ShowError(Result error, FinishedCallback finished) const override;
32 void ShowErrorWithTimestamp(Result error, std::chrono::seconds time, 34 void ShowErrorWithTimestamp(Result error, std::chrono::seconds time,
33 FinishedCallback finished) const override; 35 FinishedCallback finished) const override;
diff --git a/src/core/frontend/applets/general_frontend.cpp b/src/core/frontend/applets/general_frontend.cpp
index 29a00fb6f..b4b213a31 100644
--- a/src/core/frontend/applets/general_frontend.cpp
+++ b/src/core/frontend/applets/general_frontend.cpp
@@ -10,6 +10,8 @@ ParentalControlsApplet::~ParentalControlsApplet() = default;
10 10
11DefaultParentalControlsApplet::~DefaultParentalControlsApplet() = default; 11DefaultParentalControlsApplet::~DefaultParentalControlsApplet() = default;
12 12
13void DefaultParentalControlsApplet::Close() const {}
14
13void DefaultParentalControlsApplet::VerifyPIN(std::function<void(bool)> finished, 15void DefaultParentalControlsApplet::VerifyPIN(std::function<void(bool)> finished,
14 bool suspend_future_verification_temporarily) { 16 bool suspend_future_verification_temporarily) {
15 LOG_INFO(Service_AM, 17 LOG_INFO(Service_AM,
@@ -39,6 +41,8 @@ PhotoViewerApplet::~PhotoViewerApplet() = default;
39 41
40DefaultPhotoViewerApplet::~DefaultPhotoViewerApplet() = default; 42DefaultPhotoViewerApplet::~DefaultPhotoViewerApplet() = default;
41 43
44void DefaultPhotoViewerApplet::Close() const {}
45
42void DefaultPhotoViewerApplet::ShowPhotosForApplication(u64 title_id, 46void DefaultPhotoViewerApplet::ShowPhotosForApplication(u64 title_id,
43 std::function<void()> finished) const { 47 std::function<void()> finished) const {
44 LOG_INFO(Service_AM, 48 LOG_INFO(Service_AM,
diff --git a/src/core/frontend/applets/general_frontend.h b/src/core/frontend/applets/general_frontend.h
index cbec8b4ad..319838ac7 100644
--- a/src/core/frontend/applets/general_frontend.h
+++ b/src/core/frontend/applets/general_frontend.h
@@ -6,9 +6,11 @@
6#include <functional> 6#include <functional>
7#include "common/common_types.h" 7#include "common/common_types.h"
8 8
9#include "core/frontend/applets/applet.h"
10
9namespace Core::Frontend { 11namespace Core::Frontend {
10 12
11class ParentalControlsApplet { 13class ParentalControlsApplet : public Applet {
12public: 14public:
13 virtual ~ParentalControlsApplet(); 15 virtual ~ParentalControlsApplet();
14 16
@@ -33,6 +35,7 @@ class DefaultParentalControlsApplet final : public ParentalControlsApplet {
33public: 35public:
34 ~DefaultParentalControlsApplet() override; 36 ~DefaultParentalControlsApplet() override;
35 37
38 void Close() const override;
36 void VerifyPIN(std::function<void(bool)> finished, 39 void VerifyPIN(std::function<void(bool)> finished,
37 bool suspend_future_verification_temporarily) override; 40 bool suspend_future_verification_temporarily) override;
38 void VerifyPINForSettings(std::function<void(bool)> finished) override; 41 void VerifyPINForSettings(std::function<void(bool)> finished) override;
@@ -40,7 +43,7 @@ public:
40 void ChangePIN(std::function<void()> finished) override; 43 void ChangePIN(std::function<void()> finished) override;
41}; 44};
42 45
43class PhotoViewerApplet { 46class PhotoViewerApplet : public Applet {
44public: 47public:
45 virtual ~PhotoViewerApplet(); 48 virtual ~PhotoViewerApplet();
46 49
@@ -52,6 +55,7 @@ class DefaultPhotoViewerApplet final : public PhotoViewerApplet {
52public: 55public:
53 ~DefaultPhotoViewerApplet() override; 56 ~DefaultPhotoViewerApplet() override;
54 57
58 void Close() const override;
55 void ShowPhotosForApplication(u64 title_id, std::function<void()> finished) const override; 59 void ShowPhotosForApplication(u64 title_id, std::function<void()> finished) const override;
56 void ShowAllPhotos(std::function<void()> finished) const override; 60 void ShowAllPhotos(std::function<void()> finished) const override;
57}; 61};
diff --git a/src/core/frontend/applets/mii_edit.cpp b/src/core/frontend/applets/mii_edit.cpp
index bc8c57067..2988c3e72 100644
--- a/src/core/frontend/applets/mii_edit.cpp
+++ b/src/core/frontend/applets/mii_edit.cpp
@@ -8,6 +8,8 @@ namespace Core::Frontend {
8 8
9MiiEditApplet::~MiiEditApplet() = default; 9MiiEditApplet::~MiiEditApplet() = default;
10 10
11void DefaultMiiEditApplet::Close() const {}
12
11void DefaultMiiEditApplet::ShowMiiEdit(const MiiEditCallback& callback) const { 13void DefaultMiiEditApplet::ShowMiiEdit(const MiiEditCallback& callback) const {
12 LOG_WARNING(Service_AM, "(STUBBED) called"); 14 LOG_WARNING(Service_AM, "(STUBBED) called");
13 15
diff --git a/src/core/frontend/applets/mii_edit.h b/src/core/frontend/applets/mii_edit.h
index d828f06ec..9d86ee658 100644
--- a/src/core/frontend/applets/mii_edit.h
+++ b/src/core/frontend/applets/mii_edit.h
@@ -5,9 +5,11 @@
5 5
6#include <functional> 6#include <functional>
7 7
8#include "core/frontend/applets/applet.h"
9
8namespace Core::Frontend { 10namespace Core::Frontend {
9 11
10class MiiEditApplet { 12class MiiEditApplet : public Applet {
11public: 13public:
12 using MiiEditCallback = std::function<void()>; 14 using MiiEditCallback = std::function<void()>;
13 15
@@ -18,6 +20,7 @@ public:
18 20
19class DefaultMiiEditApplet final : public MiiEditApplet { 21class DefaultMiiEditApplet final : public MiiEditApplet {
20public: 22public:
23 void Close() const override;
21 void ShowMiiEdit(const MiiEditCallback& callback) const override; 24 void ShowMiiEdit(const MiiEditCallback& callback) const override;
22}; 25};
23 26
diff --git a/src/core/frontend/applets/profile_select.cpp b/src/core/frontend/applets/profile_select.cpp
index da4cfbf87..910d20c0d 100644
--- a/src/core/frontend/applets/profile_select.cpp
+++ b/src/core/frontend/applets/profile_select.cpp
@@ -9,6 +9,8 @@ namespace Core::Frontend {
9 9
10ProfileSelectApplet::~ProfileSelectApplet() = default; 10ProfileSelectApplet::~ProfileSelectApplet() = default;
11 11
12void DefaultProfileSelectApplet::Close() const {}
13
12void DefaultProfileSelectApplet::SelectProfile(SelectProfileCallback callback) const { 14void DefaultProfileSelectApplet::SelectProfile(SelectProfileCallback callback) const {
13 Service::Account::ProfileManager manager; 15 Service::Account::ProfileManager manager;
14 callback(manager.GetUser(Settings::values.current_user.GetValue()).value_or(Common::UUID{})); 16 callback(manager.GetUser(Settings::values.current_user.GetValue()).value_or(Common::UUID{}));
diff --git a/src/core/frontend/applets/profile_select.h b/src/core/frontend/applets/profile_select.h
index 138429533..76e963535 100644
--- a/src/core/frontend/applets/profile_select.h
+++ b/src/core/frontend/applets/profile_select.h
@@ -7,9 +7,11 @@
7#include <optional> 7#include <optional>
8#include "common/uuid.h" 8#include "common/uuid.h"
9 9
10#include "core/frontend/applets/applet.h"
11
10namespace Core::Frontend { 12namespace Core::Frontend {
11 13
12class ProfileSelectApplet { 14class ProfileSelectApplet : public Applet {
13public: 15public:
14 using SelectProfileCallback = std::function<void(std::optional<Common::UUID>)>; 16 using SelectProfileCallback = std::function<void(std::optional<Common::UUID>)>;
15 17
@@ -20,6 +22,7 @@ public:
20 22
21class DefaultProfileSelectApplet final : public ProfileSelectApplet { 23class DefaultProfileSelectApplet final : public ProfileSelectApplet {
22public: 24public:
25 void Close() const override;
23 void SelectProfile(SelectProfileCallback callback) const override; 26 void SelectProfile(SelectProfileCallback callback) const override;
24}; 27};
25 28
diff --git a/src/core/frontend/applets/software_keyboard.cpp b/src/core/frontend/applets/software_keyboard.cpp
index a3720f4d7..7655d215b 100644
--- a/src/core/frontend/applets/software_keyboard.cpp
+++ b/src/core/frontend/applets/software_keyboard.cpp
@@ -13,6 +13,8 @@ SoftwareKeyboardApplet::~SoftwareKeyboardApplet() = default;
13 13
14DefaultSoftwareKeyboardApplet::~DefaultSoftwareKeyboardApplet() = default; 14DefaultSoftwareKeyboardApplet::~DefaultSoftwareKeyboardApplet() = default;
15 15
16void DefaultSoftwareKeyboardApplet::Close() const {}
17
16void DefaultSoftwareKeyboardApplet::InitializeKeyboard( 18void DefaultSoftwareKeyboardApplet::InitializeKeyboard(
17 bool is_inline, KeyboardInitializeParameters initialize_parameters, 19 bool is_inline, KeyboardInitializeParameters initialize_parameters,
18 SubmitNormalCallback submit_normal_callback_, SubmitInlineCallback submit_inline_callback_) { 20 SubmitNormalCallback submit_normal_callback_, SubmitInlineCallback submit_inline_callback_) {
diff --git a/src/core/frontend/applets/software_keyboard.h b/src/core/frontend/applets/software_keyboard.h
index 8aef103d3..8ed96da24 100644
--- a/src/core/frontend/applets/software_keyboard.h
+++ b/src/core/frontend/applets/software_keyboard.h
@@ -7,6 +7,7 @@
7 7
8#include "common/common_types.h" 8#include "common/common_types.h"
9 9
10#include "core/frontend/applets/applet.h"
10#include "core/hle/service/am/applets/applet_software_keyboard_types.h" 11#include "core/hle/service/am/applets/applet_software_keyboard_types.h"
11 12
12namespace Core::Frontend { 13namespace Core::Frontend {
@@ -52,7 +53,7 @@ struct InlineTextParameters {
52 s32 cursor_position; 53 s32 cursor_position;
53}; 54};
54 55
55class SoftwareKeyboardApplet { 56class SoftwareKeyboardApplet : public Applet {
56public: 57public:
57 using SubmitInlineCallback = 58 using SubmitInlineCallback =
58 std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)>; 59 std::function<void(Service::AM::Applets::SwkbdReplyType, std::u16string, s32)>;
@@ -84,6 +85,8 @@ class DefaultSoftwareKeyboardApplet final : public SoftwareKeyboardApplet {
84public: 85public:
85 ~DefaultSoftwareKeyboardApplet() override; 86 ~DefaultSoftwareKeyboardApplet() override;
86 87
88 void Close() const override;
89
87 void InitializeKeyboard(bool is_inline, KeyboardInitializeParameters initialize_parameters, 90 void InitializeKeyboard(bool is_inline, KeyboardInitializeParameters initialize_parameters,
88 SubmitNormalCallback submit_normal_callback_, 91 SubmitNormalCallback submit_normal_callback_,
89 SubmitInlineCallback submit_inline_callback_) override; 92 SubmitInlineCallback submit_inline_callback_) override;
diff --git a/src/core/frontend/applets/web_browser.cpp b/src/core/frontend/applets/web_browser.cpp
index b09cb7102..6e703ef06 100644
--- a/src/core/frontend/applets/web_browser.cpp
+++ b/src/core/frontend/applets/web_browser.cpp
@@ -10,6 +10,8 @@ WebBrowserApplet::~WebBrowserApplet() = default;
10 10
11DefaultWebBrowserApplet::~DefaultWebBrowserApplet() = default; 11DefaultWebBrowserApplet::~DefaultWebBrowserApplet() = default;
12 12
13void DefaultWebBrowserApplet::Close() const {}
14
13void DefaultWebBrowserApplet::OpenLocalWebPage(const std::string& local_url, 15void DefaultWebBrowserApplet::OpenLocalWebPage(const std::string& local_url,
14 ExtractROMFSCallback extract_romfs_callback, 16 ExtractROMFSCallback extract_romfs_callback,
15 OpenWebPageCallback callback) const { 17 OpenWebPageCallback callback) const {
diff --git a/src/core/frontend/applets/web_browser.h b/src/core/frontend/applets/web_browser.h
index 4f72284ad..178bbdd3f 100644
--- a/src/core/frontend/applets/web_browser.h
+++ b/src/core/frontend/applets/web_browser.h
@@ -5,11 +5,12 @@
5 5
6#include <functional> 6#include <functional>
7 7
8#include "core/frontend/applets/applet.h"
8#include "core/hle/service/am/applets/applet_web_browser_types.h" 9#include "core/hle/service/am/applets/applet_web_browser_types.h"
9 10
10namespace Core::Frontend { 11namespace Core::Frontend {
11 12
12class WebBrowserApplet { 13class WebBrowserApplet : public Applet {
13public: 14public:
14 using ExtractROMFSCallback = std::function<void()>; 15 using ExtractROMFSCallback = std::function<void()>;
15 using OpenWebPageCallback = 16 using OpenWebPageCallback =
@@ -29,6 +30,8 @@ class DefaultWebBrowserApplet final : public WebBrowserApplet {
29public: 30public:
30 ~DefaultWebBrowserApplet() override; 31 ~DefaultWebBrowserApplet() override;
31 32
33 void Close() const override;
34
32 void OpenLocalWebPage(const std::string& local_url, ExtractROMFSCallback extract_romfs_callback, 35 void OpenLocalWebPage(const std::string& local_url, ExtractROMFSCallback extract_romfs_callback,
33 OpenWebPageCallback callback) const override; 36 OpenWebPageCallback callback) const override;
34 37
diff --git a/src/core/hle/service/am/applets/applet_cabinet.cpp b/src/core/hle/service/am/applets/applet_cabinet.cpp
index d76a9ef5a..93c9f2a55 100644
--- a/src/core/hle/service/am/applets/applet_cabinet.cpp
+++ b/src/core/hle/service/am/applets/applet_cabinet.cpp
@@ -175,7 +175,7 @@ void Cabinet::Cancel() {
175} 175}
176 176
177Result Cabinet::RequestExit() { 177Result Cabinet::RequestExit() {
178 this->Cancel(); 178 frontend.Close();
179 R_SUCCEED(); 179 R_SUCCEED();
180} 180}
181 181
diff --git a/src/core/hle/service/am/applets/applet_controller.cpp b/src/core/hle/service/am/applets/applet_controller.cpp
index 11b64dbbd..2d1d115d7 100644
--- a/src/core/hle/service/am/applets/applet_controller.cpp
+++ b/src/core/hle/service/am/applets/applet_controller.cpp
@@ -263,7 +263,7 @@ void Controller::ConfigurationComplete() {
263} 263}
264 264
265Result Controller::RequestExit() { 265Result Controller::RequestExit() {
266 this->ConfigurationComplete(); 266 frontend.Close();
267 R_SUCCEED(); 267 R_SUCCEED();
268} 268}
269 269
diff --git a/src/core/hle/service/am/applets/applet_error.cpp b/src/core/hle/service/am/applets/applet_error.cpp
index d6935c09d..b46ea840c 100644
--- a/src/core/hle/service/am/applets/applet_error.cpp
+++ b/src/core/hle/service/am/applets/applet_error.cpp
@@ -210,7 +210,7 @@ void Error::DisplayCompleted() {
210} 210}
211 211
212Result Error::RequestExit() { 212Result Error::RequestExit() {
213 this->DisplayCompleted(); 213 frontend.Close();
214 R_SUCCEED(); 214 R_SUCCEED();
215} 215}
216 216
diff --git a/src/core/hle/service/am/applets/applet_general_backend.cpp b/src/core/hle/service/am/applets/applet_general_backend.cpp
index baf680040..8b352020e 100644
--- a/src/core/hle/service/am/applets/applet_general_backend.cpp
+++ b/src/core/hle/service/am/applets/applet_general_backend.cpp
@@ -151,7 +151,7 @@ void Auth::AuthFinished(bool is_successful) {
151} 151}
152 152
153Result Auth::RequestExit() { 153Result Auth::RequestExit() {
154 this->AuthFinished(false); 154 frontend.Close();
155 R_SUCCEED(); 155 R_SUCCEED();
156} 156}
157 157
@@ -208,7 +208,7 @@ void PhotoViewer::ViewFinished() {
208} 208}
209 209
210Result PhotoViewer::RequestExit() { 210Result PhotoViewer::RequestExit() {
211 this->ViewFinished(); 211 frontend.Close();
212 R_SUCCEED(); 212 R_SUCCEED();
213} 213}
214 214
diff --git a/src/core/hle/service/am/applets/applet_mii_edit.cpp b/src/core/hle/service/am/applets/applet_mii_edit.cpp
index a4a3f3cfa..d1f652c09 100644
--- a/src/core/hle/service/am/applets/applet_mii_edit.cpp
+++ b/src/core/hle/service/am/applets/applet_mii_edit.cpp
@@ -136,7 +136,7 @@ void MiiEdit::MiiEditOutputForCharInfoEditing(MiiEditResult result,
136} 136}
137 137
138Result MiiEdit::RequestExit() { 138Result MiiEdit::RequestExit() {
139 this->MiiEditOutput(MiiEditResult::Cancel, -1); 139 frontend.Close();
140 R_SUCCEED(); 140 R_SUCCEED();
141} 141}
142 142
diff --git a/src/core/hle/service/am/applets/applet_profile_select.cpp b/src/core/hle/service/am/applets/applet_profile_select.cpp
index 5486d80dc..07abc2563 100644
--- a/src/core/hle/service/am/applets/applet_profile_select.cpp
+++ b/src/core/hle/service/am/applets/applet_profile_select.cpp
@@ -74,7 +74,7 @@ void ProfileSelect::SelectionComplete(std::optional<Common::UUID> uuid) {
74} 74}
75 75
76Result ProfileSelect::RequestExit() { 76Result ProfileSelect::RequestExit() {
77 this->SelectionComplete(std::nullopt); 77 frontend.Close();
78 R_SUCCEED(); 78 R_SUCCEED();
79} 79}
80 80
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 6f7499731..4145bb84f 100644
--- a/src/core/hle/service/am/applets/applet_software_keyboard.cpp
+++ b/src/core/hle/service/am/applets/applet_software_keyboard.cpp
@@ -771,7 +771,7 @@ void SoftwareKeyboard::ExitKeyboard() {
771} 771}
772 772
773Result SoftwareKeyboard::RequestExit() { 773Result SoftwareKeyboard::RequestExit() {
774 this->ExitKeyboard(); 774 frontend.Close();
775 R_SUCCEED(); 775 R_SUCCEED();
776} 776}
777 777
diff --git a/src/core/hle/service/am/applets/applet_web_browser.cpp b/src/core/hle/service/am/applets/applet_web_browser.cpp
index 59359e4d3..2accf7898 100644
--- a/src/core/hle/service/am/applets/applet_web_browser.cpp
+++ b/src/core/hle/service/am/applets/applet_web_browser.cpp
@@ -364,7 +364,7 @@ void WebBrowser::WebBrowserExit(WebExitReason exit_reason, std::string last_url)
364} 364}
365 365
366Result WebBrowser::RequestExit() { 366Result WebBrowser::RequestExit() {
367 this->WebBrowserExit(WebExitReason::ExitRequested); 367 frontend.Close();
368 R_SUCCEED(); 368 R_SUCCEED();
369} 369}
370 370