[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - vcl/qt5 vcl/unx

Jan-Marek Glogowski (via logerrit) logerrit at kemper.freedesktop.org
Sat Mar 30 22:46:02 UTC 2019


 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(-)

New commits:
commit c3eeb421526f284419e90d2c4c4da5b0d7bbcc0e
Author:     Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Fri Mar 29 02:58:59 2019 +0100
Commit:     Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Sat Mar 30 23:45:41 2019 +0100

    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 at fbihome.de>
    (cherry picked from commit b4698a2241ec26d796c66da3a814f7cc693785b6)
    Reviewed-on: https://gerrit.libreoffice.org/69984
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/vcl/qt5/Qt5Graphics_GDI.cxx b/vcl/qt5/Qt5Graphics_GDI.cxx
index 90baba36d3f0..851d222f0ab7 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 adbe70bfb296..8de9fc7f5712 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 290127d0526e..0b4b4283f0da 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 401afbcfa2dd..32998cdb36e3 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);


More information about the Libreoffice-commits mailing list