From 74f5ded7db71c8221bf053a5c9a041f35f6bd44b Mon Sep 17 00:00:00 2001 From: Yuriy Puchkov Date: Sat, 6 Feb 2021 14:15:48 +0200 Subject: [PATCH] MacOS - Selected area remains on the screen after saving capture (one more attempt to fix not reproducible bug on my laptop) (cherry picked from commit 75e34746fcbc2819e88a54cc4a18e5df36d5e4f0) --- src/utils/screenshotsaver.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/utils/screenshotsaver.cpp b/src/utils/screenshotsaver.cpp index 6e0d84cf..8d91e12a 100644 --- a/src/utils/screenshotsaver.cpp +++ b/src/utils/screenshotsaver.cpp @@ -27,6 +27,10 @@ #include #include #include +#if (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \ + defined(Q_OS_MACX)) +#include "src/widgets/capture/capturewidget.h" +#endif ScreenshotSaver::ScreenshotSaver() : m_id(0) @@ -117,6 +121,18 @@ bool ScreenshotSaver::saveToFilesystemGUI(const QPixmap& capture) while (!ok) { ConfigHandler config; QString savePath = FileNameHandler().absoluteSavePath(); +#if (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \ + defined(Q_OS_MACX)) + for (QWidget* widget : qApp->topLevelWidgets()) { + QString className(widget->metaObject()->className()); + if (0 == className.compare( + CaptureWidget::staticMetaObject.className())) { + widget->showNormal(); + widget->hide(); + break; + } + } +#endif if (!config.savePathFixed()) { savePath = QFileDialog::getSaveFileName( nullptr,