diff --git a/src/yuzu/util/overlay_dialog.cpp b/src/yuzu/util/overlay_dialog.cpp
index b279545128..3fa3d0afb1 100644
--- a/src/yuzu/util/overlay_dialog.cpp
+++ b/src/yuzu/util/overlay_dialog.cpp
@@ -42,7 +42,7 @@ OverlayDialog::OverlayDialog(QWidget* parent, Core::System& system, const QStrin
     MoveAndResizeWindow();
 
     // TODO (Morph): Remove this when InputInterpreter no longer relies on the HID backend
-    if (system.IsPoweredOn()) {
+    if (system.IsPoweredOn() && !ui->buttonsDialog->isHidden()) {
         input_interpreter = std::make_unique<InputInterpreter>(system);
 
         StartInputThread();
@@ -83,6 +83,11 @@ void OverlayDialog::InitializeRegularTextDialog(const QString& title_text, const
         ui->button_ok_label->setEnabled(false);
     }
 
+    if (ui->button_cancel->isHidden() && ui->button_ok_label->isHidden()) {
+        ui->buttonsDialog->hide();
+        return;
+    }
+
     connect(
         ui->button_cancel, &QPushButton::clicked, this,
         [this](bool) {
@@ -130,6 +135,11 @@ void OverlayDialog::InitializeRichTextDialog(const QString& title_text, const QS
         ui->button_ok_rich->setEnabled(false);
     }
 
+    if (ui->button_cancel_rich->isHidden() && ui->button_ok_rich->isHidden()) {
+        ui->buttonsRichDialog->hide();
+        return;
+    }
+
     connect(
         ui->button_cancel_rich, &QPushButton::clicked, this,
         [this](bool) {