diff --git a/src/citra_qt/applets/swkbd.cpp b/src/citra_qt/applets/swkbd.cpp
index 8dd022e2e..6cfd2e5b7 100644
--- a/src/citra_qt/applets/swkbd.cpp
+++ b/src/citra_qt/applets/swkbd.cpp
@@ -34,33 +34,21 @@ QtKeyboardDialog::QtKeyboardDialog(QWidget* parent, QtKeyboard* keyboard_)
     // Initialize buttons
     switch (config.button_config) {
     case ButtonConfig::Triple:
-        buttons->addButton(config.has_custom_button_text
-                               ? QString::fromStdString(config.button_text[2])
-                               : tr(SWKBD_BUTTON_OKAY),
-                           QDialogButtonBox::ButtonRole::AcceptRole);
-        buttons->addButton(config.has_custom_button_text
-                               ? QString::fromStdString(config.button_text[1])
-                               : tr(SWKBD_BUTTON_FORGOT),
+        buttons->addButton(config.button_text[1].empty()
+                               ? tr(SWKBD_BUTTON_FORGOT)
+                               : QString::fromStdString(config.button_text[1]),
                            QDialogButtonBox::ButtonRole::HelpRole);
-        buttons->addButton(config.has_custom_button_text
-                               ? QString::fromStdString(config.button_text[0])
-                               : tr(SWKBD_BUTTON_CANCEL),
-                           QDialogButtonBox::ButtonRole::RejectRole);
-        break;
+        [[fallthrough]];
     case ButtonConfig::Dual:
-        buttons->addButton(config.has_custom_button_text
-                               ? QString::fromStdString(config.button_text[2])
-                               : tr(SWKBD_BUTTON_OKAY),
-                           QDialogButtonBox::ButtonRole::AcceptRole);
-        buttons->addButton(config.has_custom_button_text
-                               ? QString::fromStdString(config.button_text[0])
-                               : tr(SWKBD_BUTTON_CANCEL),
+        buttons->addButton(config.button_text[0].empty()
+                               ? tr(SWKBD_BUTTON_CANCEL)
+                               : QString::fromStdString(config.button_text[0]),
                            QDialogButtonBox::ButtonRole::RejectRole);
-        break;
+        [[fallthrough]];
     case ButtonConfig::Single:
-        buttons->addButton(config.has_custom_button_text
-                               ? QString::fromStdString(config.button_text[2])
-                               : tr(SWKBD_BUTTON_OKAY),
+        buttons->addButton(config.button_text[2].empty()
+                               ? tr(SWKBD_BUTTON_OKAY)
+                               : QString::fromStdString(config.button_text[2]),
                            QDialogButtonBox::ButtonRole::AcceptRole);
         break;
     case ButtonConfig::None:
diff --git a/src/core/frontend/applets/swkbd.h b/src/core/frontend/applets/swkbd.h
index 7a716590d..c1ddb3f36 100644
--- a/src/core/frontend/applets/swkbd.h
+++ b/src/core/frontend/applets/swkbd.h
@@ -38,12 +38,11 @@ constexpr char SWKBD_BUTTON_FORGOT[] = "I Forgot";
 /// later learn is needed can be added here and filled in by the backend HLE applet
 struct KeyboardConfig {
     ButtonConfig button_config;
-    AcceptedInput accept_mode;   /// What kinds of input are accepted (blank/empty/fixed width)
-    bool multiline_mode;         /// True if the keyboard accepts multiple lines of input
-    u16 max_text_length;         /// Maximum number of letters allowed if its a text input
-    u16 max_digits;              /// Maximum number of numbers allowed if its a number input
-    std::string hint_text;       /// Displayed in the field as a hint before
-    bool has_custom_button_text; /// If true, use the button_text instead
+    AcceptedInput accept_mode; /// What kinds of input are accepted (blank/empty/fixed width)
+    bool multiline_mode;       /// True if the keyboard accepts multiple lines of input
+    u16 max_text_length;       /// Maximum number of letters allowed if its a text input
+    u16 max_digits;            /// Maximum number of numbers allowed if its a number input
+    std::string hint_text;     /// Displayed in the field as a hint before
     std::vector<std::string> button_text; /// Contains the button text that the caller provides
     struct Filters {
         bool prevent_digit;     /// Limit maximum digit count to max_digits
diff --git a/src/core/hle/applets/swkbd.cpp b/src/core/hle/applets/swkbd.cpp
index 7481a168c..486d6b690 100644
--- a/src/core/hle/applets/swkbd.cpp
+++ b/src/core/hle/applets/swkbd.cpp
@@ -194,15 +194,8 @@ Frontend::KeyboardConfig SoftwareKeyboard::ToFrontendConfig(
     frontend_config.max_text_length = config.max_text_length;
     frontend_config.max_digits = config.max_digits;
     frontend_config.hint_text = Common::UTF16BufferToUTF8(config.hint_text);
-    frontend_config.has_custom_button_text =
-        !std::all_of(config.button_text.begin(), config.button_text.end(),
-                     [](std::array<u16, HLE::Applets::MAX_BUTTON_TEXT_LEN + 1> x) {
-                         return std::all_of(x.begin(), x.end(), [](u16 x) { return x == 0; });
-                     });
-    if (frontend_config.has_custom_button_text) {
-        for (const auto& text : config.button_text) {
-            frontend_config.button_text.push_back(Common::UTF16BufferToUTF8(text));
-        }
+    for (const auto& text : config.button_text) {
+        frontend_config.button_text.push_back(Common::UTF16BufferToUTF8(text));
     }
     frontend_config.filters.prevent_digit =
         static_cast<bool>(config.filter_flags & SoftwareKeyboardFilter::Digits);