aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
Diffstat (limited to 'launcher')
-rw-r--r--launcher/Application.cpp7
-rw-r--r--launcher/Application.h1
-rw-r--r--launcher/ui/MainWindow.cpp3
3 files changed, 9 insertions, 2 deletions
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 25ac93e6..01b62971 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -80,6 +80,7 @@
#include <QStringList>
#include <QDebug>
#include <QStyleFactory>
+#include <QWindow>
#include "InstanceList.h"
@@ -1267,6 +1268,12 @@ bool Application::kill(InstancePtr instance)
return true;
}
+void Application::closeCurrentWindow()
+{
+ if (focusWindow())
+ focusWindow()->close();
+}
+
void Application::addRunningInstance()
{
m_runningInstances ++;
diff --git a/launcher/Application.h b/launcher/Application.h
index 54d9ba5f..172321c0 100644
--- a/launcher/Application.h
+++ b/launcher/Application.h
@@ -189,6 +189,7 @@ public slots:
MinecraftAccountPtr accountToUse = nullptr
);
bool kill(InstancePtr instance);
+ void closeCurrentWindow();
private slots:
void on_windowClose();
diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp
index 90af763a..1c694484 100644
--- a/launcher/ui/MainWindow.cpp
+++ b/launcher/ui/MainWindow.cpp
@@ -615,8 +615,7 @@ public:
closeAct = new QAction(tr("Close &Window"), MainWindow);
closeAct->setShortcut(QKeySequence::Close);
closeAct->setStatusTip(tr("Close the current window"));
- // FIXME: currently this always closes the main window, even if it is not currently the window in focus
- connect(closeAct, &QAction::triggered, MainWindow, &MainWindow::close);
+ connect(closeAct, &QAction::triggered, APPLICATION, &Application::closeCurrentWindow);
undoAct = new QAction(tr("&Undo"), MainWindow);
undoAct->setShortcuts(QKeySequence::Undo);