mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-14 11:46:34 +02:00
Simpler cross-platform solution, with comments.
This commit is contained in:
parent
77d6e0e3e9
commit
0544bcaacd
2 changed files with 9 additions and 6 deletions
|
@ -365,12 +365,6 @@ public:
|
|||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (message->message == WM_CLOSE) {
|
||||
// tell our registered application to quit
|
||||
QMetaObject::invokeMethod(qApp, "quit");
|
||||
return true; // Don't zombify the application by OS-exitting. Let the application quit in the normal quit-signal way.
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -64,6 +64,15 @@ void MainWindow::saveGeometry() {
|
|||
}
|
||||
|
||||
void MainWindow::closeEvent(QCloseEvent* event) {
|
||||
// It is the job of Application::quit() to shut things down properly when it is finished with its event loop.
|
||||
// But if we don't explicitly ignore this event now, the window and application event loop will close
|
||||
// before we've had a chance to act on the aboutToClose signal. This will leaves a zombie process on all platforms.
|
||||
// To repro:
|
||||
// Open a QML modal dialog (e.g., select an avatar to wear), but don't dismiss it.
|
||||
// Close the application with the operating system window close button (not the menu Quit)
|
||||
// With ignore: App will wait until you accept or dismiss the dialog and log "Normal exit".
|
||||
// Without ignore: App will close immediately, and nothing will log about quitting or exit.
|
||||
event->ignore();
|
||||
qApp->quit();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue