app-office/libreoffice: Set KFileWidget's custom widget only once
authorAndreas Sturmlechner <asturm@gentoo.org>
Thu, 31 Jan 2019 23:07:10 +0000 (00:07 +0100)
committerAndreas Sturmlechner <asturm@gentoo.org>
Fri, 1 Feb 2019 20:14:20 +0000 (21:14 +0100)
Package-Manager: Portage-2.3.59, Repoman-2.3.12
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
app-office/libreoffice/files/libreoffice-6.1.5.2-gtk3_kde5-set-kfilewidgets-custom-widget-only-once.patch [new file with mode: 0644]
app-office/libreoffice/libreoffice-6.1.5.2.ebuild

diff --git a/app-office/libreoffice/files/libreoffice-6.1.5.2-gtk3_kde5-set-kfilewidgets-custom-widget-only-once.patch b/app-office/libreoffice/files/libreoffice-6.1.5.2-gtk3_kde5-set-kfilewidgets-custom-widget-only-once.patch
new file mode 100644 (file)
index 0000000..69134a8
--- /dev/null
@@ -0,0 +1,42 @@
+From 7b54f3db98e96231fc9f16429f325cdb1f37498c Mon Sep 17 00:00:00 2001
+From: Michael Weghorn <m.weghorn@posteo.de>
+Date: Thu, 31 Jan 2019 09:52:51 +0100
+Subject: tdf#123077 gtk3_kde5: Set KFileWidget's custom widget only once
+
+Since the event filter is only used to set the custom
+widget in the KFileWidget, it can and needs to be removed
+again once this has been done; which also avoids crashes.
+
+(s. https://gerrit.libreoffice.org/#/c/67185/ for more
+infos, where the same thing is done for kde5)
+
+Change-Id: I5c719fb17510916b4730ed5c00bb638df2f183e3
+Reviewed-on: https://gerrit.libreoffice.org/67184
+Tested-by: Jenkins
+Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
+(cherry picked from commit 30cc54a4532a732a0cf6dfe9943521978ff7292f)
+Reviewed-on: https://gerrit.libreoffice.org/67203
+Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
+---
+ vcl/unx/gtk3_kde5/kde5_filepicker.cxx | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/vcl/unx/gtk3_kde5/kde5_filepicker.cxx b/vcl/unx/gtk3_kde5/kde5_filepicker.cxx
+index 33f64ad0..9914869 100644
+--- a/vcl/unx/gtk3_kde5/kde5_filepicker.cxx
++++ b/vcl/unx/gtk3_kde5/kde5_filepicker.cxx
+@@ -265,7 +265,11 @@ bool KDE5FilePicker::eventFilter(QObject* o, QEvent* e)
+         {
+             KWindowSystem::setMainWindow(w, _winId);
+             if (auto* fileWidget = w->findChild<KFileWidget*>({}, Qt::FindDirectChildrenOnly))
++            {
+                 fileWidget->setCustomWidget(_extraControls);
++                // remove event filter again; the only purpose was to set the custom widget here
++                qApp->removeEventFilter(this);
++            }
+         }
+     }
+     return QObject::eventFilter(o, e);
+-- 
+cgit v1.1
+
index e59e17836c29dec7617a3a079b8845b0ab9bbd69..3524ee2f86ec036409beb117392b30d2d7e49963 100644 (file)
@@ -252,6 +252,7 @@ PATCHES=(
 
        # master branch
        "${FILESDIR}/${P}-gtk3_kde5-non-native-fpicker-for-non-plasma.patch"
+       "${FILESDIR}/${P}-gtk3_kde5-set-kfilewidgets-custom-widget-only-once.patch"
 )
 
 S="${WORKDIR}/${PN}-${MY_PV}"