media-sound/clementine: Fix restore from systray with >=Qt-5.12.4
authorAndreas Sturmlechner <asturm@gentoo.org>
Sat, 13 Jul 2019 08:50:06 +0000 (10:50 +0200)
committerAndreas Sturmlechner <asturm@gentoo.org>
Sat, 13 Jul 2019 08:50:45 +0000 (10:50 +0200)
See upstream PR: https://github.com/clementine-player/Clementine/pull/6351

Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
media-sound/clementine/clementine-1.3.1_p20190609.ebuild
media-sound/clementine/files/clementine-1.3.1_p20190609-fix-restore-from-systray.patch [new file with mode: 0644]

index 54765a4608b59dde49ed563fe2165d706898dede..a4d5f63d5bb084791070ced7e6bc9034cb15e385 100644 (file)
@@ -104,6 +104,8 @@ RESTRICT="test"
 
 DOCS=( Changelog README.md )
 
+PATCHES=( "${FILESDIR}/${P}-fix-restore-from-systray.patch" )
+
 src_prepare() {
        l10n_find_plocales_changes "src/translations" "" ".po"
 
diff --git a/media-sound/clementine/files/clementine-1.3.1_p20190609-fix-restore-from-systray.patch b/media-sound/clementine/files/clementine-1.3.1_p20190609-fix-restore-from-systray.patch
new file mode 100644 (file)
index 0000000..9f27e21
--- /dev/null
@@ -0,0 +1,34 @@
+From 1bf633e71b7b5d8e5965971036d66e1d18552b49 Mon Sep 17 00:00:00 2001
+From: Michael Niggli <m.niggli@gmail.com>
+Date: Fri, 31 May 2019 17:04:46 +0200
+Subject: [PATCH] Fix blank window when restoring from systray
+
+This applies the fix qBittorrent used for this same issue:
+https://github.com/qbittorrent/qBittorrent/issues/9240,
+so credit goes to those guys
+---
+ src/ui/mainwindow.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
+index 2944d46ec..ad603fd64 100644
+--- a/src/ui/mainwindow.cpp
++++ b/src/ui/mainwindow.cpp
+@@ -1441,7 +1441,7 @@ void MainWindow::closeEvent(QCloseEvent* event) {
+     keep_running = s.value("keeprunning", tray_icon_->IsVisible()).toBool();
+   if (keep_running && event->spontaneous()) {
+-    event->accept();
++    event->ignore();
+     SetHiddenInTray(true);
+   } else {
+     Exit();
+@@ -1454,7 +1454,7 @@ void MainWindow::SetHiddenInTray(bool hidden) {
+   // Some window managers don't remember maximized state between calls to
+   // hide() and show(), so we have to remember it ourself.
+   if (hidden) {
+-    hide();
++    QTimer::singleShot(0, this, &QWidget::hide);
+   } else {
+     if (was_maximized_)
+       showMaximized();