Close the current window instead of the main window from the menu bar
Systems with native menu bars show the same menu bar for all child windows. As a result, you cannot assume that the menu bar's parent (the `MainWindow`) will be the window in focus.
This commit is contained in:
parent
1049507b3f
commit
e59d3a339f
@ -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 ++;
|
||||
|
@ -189,6 +189,7 @@ public slots:
|
||||
MinecraftAccountPtr accountToUse = nullptr
|
||||
);
|
||||
bool kill(InstancePtr instance);
|
||||
void closeCurrentWindow();
|
||||
|
||||
private slots:
|
||||
void on_windowClose();
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user