summaryrefslogtreecommitdiff
path: root/app-office/libreoffice/files
diff options
context:
space:
mode:
Diffstat (limited to 'app-office/libreoffice/files')
-rw-r--r--app-office/libreoffice/files/libreoffice-6.2.2.2-boost-1.69.patch36
-rw-r--r--app-office/libreoffice/files/libreoffice-6.2.3.1-kf5-update-delayed-frame-destruct.patch113
-rw-r--r--app-office/libreoffice/files/libreoffice-6.2.3.1-qt5-kf5-disable-qt-hidpi-scaling.patch82
3 files changed, 231 insertions, 0 deletions
diff --git a/app-office/libreoffice/files/libreoffice-6.2.2.2-boost-1.69.patch b/app-office/libreoffice/files/libreoffice-6.2.2.2-boost-1.69.patch
new file mode 100644
index 000000000000..0c4c38cf58c8
--- /dev/null
+++ b/app-office/libreoffice/files/libreoffice-6.2.2.2-boost-1.69.patch
@@ -0,0 +1,36 @@
+From 358637547c5bb7ae6ca637640c4279455414dbfa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
+Date: Fri, 15 Mar 2019 16:16:31 +0100
+Subject: Fix build with boost 1.69
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is also fixed with master with boost bump which we do not need
+here.
+
+Change-Id: I61caec10c0c6d442cef3d51c31eaff01f18b89e3
+Reviewed-on: https://gerrit.libreoffice.org/69310
+Reviewed-by: Tomáš Chvátal <tchvatal@suse.cz>
+Tested-by: Tomáš Chvátal <tchvatal@suse.cz>
+Reviewed-by: Caolán McNamara <caolanm@redhat.com>
+Tested-by: Caolán McNamara <caolanm@redhat.com>
+---
+ sfx2/source/appl/shutdownicon.cxx | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
+index e917c3a..8a51e5c 100644
+--- a/sfx2/source/appl/shutdownicon.cxx
++++ b/sfx2/source/appl/shutdownicon.cxx
+@@ -143,7 +143,7 @@ bool LoadModule()
+ #endif // ENABLE_QUICKSTART_APPLET
+ }
+ assert(!boost::logic::indeterminate(loaded));
+- return loaded;
++ return bool(loaded);
+ }
+
+ }
+--
+cgit v1.1
diff --git a/app-office/libreoffice/files/libreoffice-6.2.3.1-kf5-update-delayed-frame-destruct.patch b/app-office/libreoffice/files/libreoffice-6.2.3.1-kf5-update-delayed-frame-destruct.patch
new file mode 100644
index 000000000000..17843e007e08
--- /dev/null
+++ b/app-office/libreoffice/files/libreoffice-6.2.3.1-kf5-update-delayed-frame-destruct.patch
@@ -0,0 +1,113 @@
+From d622be2d6bcfcc2c7260421e0eaa09c76ce15da2 Mon Sep 17 00:00:00 2001
+From: Aleksei Nikiforov <darktemplar@basealt.ru>
+Date: Wed, 6 Mar 2019 16:10:17 +0300
+Subject: tdf#123406 KDE5: Update delayed frame destruction
+
+Move deleteLater() call to the different event loop.
+This fixes issue with frames not being disposed of
+deterministically, and previously opened window
+not reactivating.
+
+Also hide modal dialog window before unsetting modal mode.
+Unsetting modal mode may require to toggle window visibility.
+Window will be hidden soon anyway,
+and additional generated events might make finding correct
+focused window harder.
+
+Change-Id: Id7839f817075785287b09f6ac79eb3fb211726aa
+Reviewed-on: https://gerrit.libreoffice.org/68852
+Tested-by: Jenkins
+Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
+Reviewed-on: https://gerrit.libreoffice.org/70078
+Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
+---
+ vcl/inc/qt5/Qt5Instance.hxx | 2 ++
+ vcl/qt5/Qt5Instance.cxx | 12 ++++++++++--
+ vcl/source/window/dialog.cxx | 4 ++--
+ 3 files changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/vcl/inc/qt5/Qt5Instance.hxx b/vcl/inc/qt5/Qt5Instance.hxx
+index 91682bd..cece484 100644
+--- a/vcl/inc/qt5/Qt5Instance.hxx
++++ b/vcl/inc/qt5/Qt5Instance.hxx
+@@ -50,10 +50,12 @@ public:
+
+ private Q_SLOTS:
+ bool ImplYield(bool bWait, bool bHandleAllCurrentEvents);
++ static void deleteObjectLater(QObject* pObject);
+
+ Q_SIGNALS:
+ bool ImplYieldSignal(bool bWait, bool bHandleAllCurrentEvents);
+ std::unique_ptr<SalMenu> createMenuSignal(bool, Menu*);
++ void deleteObjectLaterSignal(QObject* pObject);
+
+ public:
+ explicit Qt5Instance(bool bUseCairo = false);
+diff --git a/vcl/qt5/Qt5Instance.cxx b/vcl/qt5/Qt5Instance.cxx
+index 8de9fc7..58f93fe 100644
+--- a/vcl/qt5/Qt5Instance.cxx
++++ b/vcl/qt5/Qt5Instance.cxx
+@@ -67,6 +67,12 @@ Qt5Instance::Qt5Instance(bool bUseCairo)
+ Qt::BlockingQueuedConnection);
+ connect(this, &Qt5Instance::createMenuSignal, this, &Qt5Instance::CreateMenu,
+ Qt::BlockingQueuedConnection);
++
++ // this one needs to be queued non-blocking
++ // in order to have this event arriving to correct event processing loop
++ connect(this, &Qt5Instance::deleteObjectLaterSignal, this,
++ [](QObject* pObject) { Qt5Instance::deleteObjectLater(pObject); },
++ Qt::QueuedConnection);
+ }
+
+ Qt5Instance::~Qt5Instance()
+@@ -78,6 +84,8 @@ Qt5Instance::~Qt5Instance()
+ free(m_pFakeArgvFreeable[i]);
+ }
+
++void Qt5Instance::deleteObjectLater(QObject* pObject) { pObject->deleteLater(); }
++
+ SalFrame* Qt5Instance::CreateChildFrame(SystemParentData* /*pParent*/, SalFrameStyleFlags nStyle)
+ {
+ return new Qt5Frame(nullptr, nStyle, m_bUseCairo);
+@@ -94,7 +102,7 @@ void Qt5Instance::DestroyFrame(SalFrame* pFrame)
+ if (pFrame)
+ {
+ assert(dynamic_cast<Qt5Frame*>(pFrame));
+- static_cast<Qt5Frame*>(pFrame)->deleteLater();
++ Q_EMIT deleteObjectLaterSignal(static_cast<Qt5Frame*>(pFrame));
+ }
+ }
+
+@@ -109,7 +117,7 @@ void Qt5Instance::DestroyObject(SalObject* pObject)
+ if (pObject)
+ {
+ assert(dynamic_cast<Qt5Object*>(pObject));
+- static_cast<Qt5Object*>(pObject)->deleteLater();
++ Q_EMIT deleteObjectLaterSignal(static_cast<Qt5Object*>(pObject));
+ }
+ }
+
+diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
+index 0c75f85..1688163 100644
+--- a/vcl/source/window/dialog.cxx
++++ b/vcl/source/window/dialog.cxx
+@@ -1097,6 +1097,8 @@ void Dialog::EndDialog( long nResult )
+
+ const bool bModal = GetType() != WindowType::MODELESSDIALOG;
+
++ Hide();
++
+ if (bModal)
+ {
+ SetModalInputMode(false);
+@@ -1121,8 +1123,6 @@ void Dialog::EndDialog( long nResult )
+ }
+ }
+
+- Hide();
+-
+ if (bModal && GetParent())
+ {
+ NotifyEvent aNEvt( MouseNotifyEvent::ENDEXECUTEDIALOG, this );
+--
+cgit v1.1
diff --git a/app-office/libreoffice/files/libreoffice-6.2.3.1-qt5-kf5-disable-qt-hidpi-scaling.patch b/app-office/libreoffice/files/libreoffice-6.2.3.1-qt5-kf5-disable-qt-hidpi-scaling.patch
new file mode 100644
index 000000000000..12f3ddc29587
--- /dev/null
+++ b/app-office/libreoffice/files/libreoffice-6.2.3.1-qt5-kf5-disable-qt-hidpi-scaling.patch
@@ -0,0 +1,82 @@
+From c3eeb421526f284419e90d2c4c4da5b0d7bbcc0e Mon Sep 17 00:00:00 2001
+From: Jan-Marek Glogowski <glogow@fbihome.de>
+Date: Fri, 29 Mar 2019 02:58:59 +0100
+Subject: tdf#124292 Qt5 / KDE5 disable Qt's HiDPI scaling
+
+LO does its own layouting and also all the scaling, so disable
+the automatic HiDPI scaling explicitly. Otherwise fonts will be
+rendered in LoDPI and just scaled as an image, if UI scaling is
+enabled in KDE, resulting in really blocky / ugly fonts.
+
+Change-Id: I38503ce27c1671e80d0749d21c6c6dcff1a808a6
+Reviewed-on: https://gerrit.libreoffice.org/69941
+Tested-by: Jenkins
+Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
+(cherry picked from commit b4698a2241ec26d796c66da3a814f7cc693785b6)
+Reviewed-on: https://gerrit.libreoffice.org/69984
+Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
+---
+ vcl/qt5/Qt5Graphics_GDI.cxx | 4 ++--
+ vcl/qt5/Qt5Instance.cxx | 2 ++
+ vcl/unx/kde5/KDE5SalGraphics.cxx | 4 ++--
+ vcl/unx/kde5/KDE5SalInstance.cxx | 2 ++
+ 4 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/vcl/qt5/Qt5Graphics_GDI.cxx b/vcl/qt5/Qt5Graphics_GDI.cxx
+index 90baba3..851d222 100644
+--- a/vcl/qt5/Qt5Graphics_GDI.cxx
++++ b/vcl/qt5/Qt5Graphics_GDI.cxx
+@@ -643,8 +643,8 @@ void Qt5Graphics::GetResolution(sal_Int32& rDPIX, sal_Int32& rDPIY)
+ return;
+
+ QScreen* pScreen = m_pFrame->GetQWidget()->window()->windowHandle()->screen();
+- rDPIX = pScreen->logicalDotsPerInchX();
+- rDPIY = pScreen->logicalDotsPerInchY();
++ rDPIX = pScreen->logicalDotsPerInchX() * pScreen->devicePixelRatio() + 0.5;
++ rDPIY = pScreen->logicalDotsPerInchY() * pScreen->devicePixelRatio() + 0.5;
+ }
+
+ sal_uInt16 Qt5Graphics::GetBitCount() const { return getFormatBits(m_pQImage->format()); }
+diff --git a/vcl/qt5/Qt5Instance.cxx b/vcl/qt5/Qt5Instance.cxx
+index adbe70b..8de9fc7 100644
+--- a/vcl/qt5/Qt5Instance.cxx
++++ b/vcl/qt5/Qt5Instance.cxx
+@@ -336,6 +336,8 @@ VCLPLUG_QT5_PUBLIC SalInstance* create_SalInstance()
+ unsetenv("SESSION_MANAGER");
+ }
+
++ QApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
++
+ int* pFakeArgc = new int;
+ *pFakeArgc = nFakeArgc;
+ pQApplication = new QApplication(*pFakeArgc, pFakeArgv);
+diff --git a/vcl/unx/kde5/KDE5SalGraphics.cxx b/vcl/unx/kde5/KDE5SalGraphics.cxx
+index 290127d..0b4b428 100644
+--- a/vcl/unx/kde5/KDE5SalGraphics.cxx
++++ b/vcl/unx/kde5/KDE5SalGraphics.cxx
+@@ -78,8 +78,8 @@ void KDE5SalGraphics::GetResolution(sal_Int32& rDPIX, sal_Int32& rDPIY)
+ return;
+
+ QScreen* pScreen = m_pFrame->GetQWidget()->window()->windowHandle()->screen();
+- rDPIX = pScreen->logicalDotsPerInchX();
+- rDPIY = pScreen->logicalDotsPerInchY();
++ rDPIX = pScreen->logicalDotsPerInchX() * pScreen->devicePixelRatio() + 0.5;
++ rDPIY = pScreen->logicalDotsPerInchY() * pScreen->devicePixelRatio() + 0.5;
+ }
+
+ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/vcl/unx/kde5/KDE5SalInstance.cxx b/vcl/unx/kde5/KDE5SalInstance.cxx
+index 401afbc..32998cd 100644
+--- a/vcl/unx/kde5/KDE5SalInstance.cxx
++++ b/vcl/unx/kde5/KDE5SalInstance.cxx
+@@ -144,6 +144,8 @@ VCLPLUG_KDE5_PUBLIC SalInstance* create_SalInstance()
+ unsetenv("SESSION_MANAGER");
+ }
+
++ QApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
++
+ int* pFakeArgc = new int;
+ *pFakeArgc = nFakeArgc;
+ pQApplication = new QApplication(*pFakeArgc, pFakeArgv);
+--
+cgit v1.1