summaryrefslogtreecommitdiff
path: root/app-office/libreoffice/files/libreoffice-6.2.3.1-qt5-kf5-disable-qt-hidpi-scaling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-office/libreoffice/files/libreoffice-6.2.3.1-qt5-kf5-disable-qt-hidpi-scaling.patch')
-rw-r--r--app-office/libreoffice/files/libreoffice-6.2.3.1-qt5-kf5-disable-qt-hidpi-scaling.patch82
1 files changed, 82 insertions, 0 deletions
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