From 347681e604d988ce5c3b371e54409ce23bb9ea46 Mon Sep 17 00:00:00 2001 From: Gary Wang Date: Tue, 22 Jul 2025 00:08:06 +0800 Subject: [PATCH] feat(macOS): click dock icon to show window when it's hidden --- app/main.cpp | 12 ++++++++++++ app/mainwindow.cpp | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/main.cpp b/app/main.cpp index a9d8999..d7a50a5 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -76,6 +76,18 @@ int main(int argc, char *argv[]) w.showUrls({url}); w.initWindowSize(); }); + + // Handle dock icon clicks to show hidden window + a.connect(&a, &QApplication::applicationStateChanged, [&w](Qt::ApplicationState state) { + if (state == Qt::ApplicationActive && w.isHidden()) { + w.showUrls({}); + w.galleryCurrent(true, true); + w.setWindowOpacity(1); + w.showNormal(); + w.raise(); + w.activateWindow(); + } + }); #endif // Q_OS_MACOS QStringList urlStrList = parser.positionalArguments(); diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp index ee32cb4..a1523d4 100644 --- a/app/mainwindow.cpp +++ b/app/mainwindow.cpp @@ -188,6 +188,7 @@ void MainWindow::showUrls(const QList &urls) m_pm->loadPlaylist(urls); } else { m_graphicsView->showText(tr("File url list is empty")); + m_pm->setPlaylist(urls); return; } @@ -312,7 +313,7 @@ QStringList MainWindow::supportedImageFormats() void MainWindow::showEvent(QShowEvent *event) { updateWidgetsPosition(); - + return FramelessWindow::showEvent(event); }