Merge pull request #560 from jonian/qt-window-close

Qt: Stop emuThread on closeEvent
This commit is contained in:
wheremyfoodat 2024-07-25 10:59:18 +00:00 committed by GitHub
commit bb19049fc0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 3 deletions

View file

@ -139,6 +139,7 @@ class MainWindow : public QMainWindow {
MainWindow(QApplication* app, QWidget* parent = nullptr); MainWindow(QApplication* app, QWidget* parent = nullptr);
~MainWindow(); ~MainWindow();
void closeEvent(QCloseEvent *event) override;
void keyPressEvent(QKeyEvent* event) override; void keyPressEvent(QKeyEvent* event) override;
void keyReleaseEvent(QKeyEvent* event) override; void keyReleaseEvent(QKeyEvent* event) override;
void mousePressEvent(QMouseEvent* event) override; void mousePressEvent(QMouseEvent* event) override;

View file

@ -204,14 +204,17 @@ void MainWindow::selectLuaFile() {
} }
} }
// Cleanup when the main window closes // Stop emulator thread when the main window closes
MainWindow::~MainWindow() { void MainWindow::closeEvent(QCloseEvent *event) {
appRunning = false; // Set our running atomic to false in order to make the emulator thread stop, and join it appRunning = false; // Set our running atomic to false in order to make the emulator thread stop, and join it
if (emuThread.joinable()) { if (emuThread.joinable()) {
emuThread.join(); emuThread.join();
} }
}
// Cleanup when the main window closes
MainWindow::~MainWindow() {
delete emu; delete emu;
delete menuBar; delete menuBar;
delete aboutWindow; delete aboutWindow;