diff --git a/src/vcaptain.cpp b/src/vcaptain.cpp index 6fda6ccd..cabe88b6 100644 --- a/src/vcaptain.cpp +++ b/src/vcaptain.cpp @@ -190,7 +190,9 @@ void VCaptain::restoreFocus() void VCaptain::exitCaptainMode() { - if (checkMode(CaptainMode::Navigation)) { + if (checkMode(CaptainMode::Normal)) { + return; + } else if (checkMode(CaptainMode::Navigation)) { exitNavigationMode(); } diff --git a/src/vcaptain.h b/src/vcaptain.h index 48416180..c92b1658 100644 --- a/src/vcaptain.h +++ b/src/vcaptain.h @@ -45,6 +45,8 @@ public: void setCaptainModeEnabled(bool p_enabled); + void exitCaptainMode(); + signals: // Emit when mode changed. void captainModeChanged(bool p_captainMode); @@ -140,8 +142,6 @@ private: // Exit navigation mode to ask all targets hide themselves. void exitNavigationMode(); - void exitCaptainMode(); - // Called to trigger the action of a Captain target which has // registered @p_key. void triggerCaptainTarget(const QString &p_key); diff --git a/src/vmainwindow.cpp b/src/vmainwindow.cpp index 6e3fcc7e..f190effa 100644 --- a/src/vmainwindow.cpp +++ b/src/vmainwindow.cpp @@ -2134,6 +2134,8 @@ void VMainWindow::closeEvent(QCloseEvent *event) bool isExit = m_requestQuit || !g_config->getMinimizeToStystemTray(); m_requestQuit = false; + m_captain->exitCaptainMode(); + #if defined(Q_OS_MACOS) || defined(Q_OS_MAC) // Do not support minimized to tray on macOS. isExit = true;