extra/libreoffice-fresh to 24.2.1-5

This commit is contained in:
Kevin Mihelich 2024-03-23 01:16:32 +00:00
parent bb9af0ed5c
commit b0bda28b94
3 changed files with 71 additions and 2 deletions

View file

@ -1,6 +1,6 @@
pkgbase = libreoffice-fresh
pkgver = 24.2.1
pkgrel = 4
pkgrel = 5
url = https://www.libreoffice.org/
arch = x86_64
license = MPL-2.0
@ -153,6 +153,7 @@ pkgbase = libreoffice-fresh
source = 623ea5c.diff
source = libreoffice-7.5.8.2-icu-74-compatibility.patch
source = kf6_buildfix.diff
source = ForceQt_HighDpiScaleFactorRoundingPolicy_Round.diff
source = soffice-template.desktop.in
source = libreoffice-fresh.sh
source = libreoffice-fresh.csh
@ -187,6 +188,7 @@ pkgbase = libreoffice-fresh
sha256sums = 440c9af5f3d1213d8ed7177282380f25cbc981cabc8b590dcb777aaae84178e5
sha256sums = d7b952a51e1e40d3faf2f465b68f46d56828d8c46948748fa82fe82a29af2599
sha256sums = f7905962a634ab4ab5c5e591c1816e6baf3f66db91adfeee25c631b6939110ef
sha256sums = c69bd89feeb033f8d4a3950718cdc04a4f7601f556732dac3f050ac39a3c25cb
sha256sums = d0be8099cbee3c9dfda694a828149b881c345b204ab68826f317580aafb50879
sha256sums = 9fb33dbc3ffeb6af2ea7341b58242142d4eca903584c21c5f4b44ff27fbf5b5f
sha256sums = 512355b5ef646791089da8c2b35cf8b019673c0c8a58685962af3b5d9eb5d6bb

View file

@ -0,0 +1,62 @@
From 7989a04cee3b614d493a5acbd1ff0363596efc00 Mon Sep 17 00:00:00 2001
From: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed, 13 Mar 2024 12:27:12 +0100
Subject: tdf#159915 qt: Force Qt::HighDpiScaleFactorRoundingPolicy::Round
For now, force `Qt::HighDpiScaleFactorRoundingPolicy::Round`
for the HighDPI-scale factor rounding policy [1], which is the default
for Qt 5, while Qt 6 defaults to `Qt::HighDpiScaleFactorRoundingPolicy::PassThrough`
(see [2]), which resulted in broken rendering (e.g. "Help" -> "About"
dialog not showing the whole content) when fractional display scaling like 150 %
is configured in the KDE Plasma display settings (in contrast to manually setting the
`QT_SCALE_FACTOR=1.5` env variable to apply scaling, which was working
fine).
Quoting from [3]:
> The two principal options are whether fractional scale factors should be
> rounded to an integer or not. Keeping the scale factor as-is will make
> the user interface size match the OS setting exactly, but may cause
> painting errors, for example with the Windows style.
Manually setting the env variable `QT_SCALE_FACTOR_ROUNDING_POLICY="Round"`
has the same effect (and can be used with LO versions not yet
containing this fix).
(There might be a way to adjust the way that scaling happens
to make other policies work, but for now, just hard-code to
the policy that is known to work.)
[1] https://doc.qt.io/qt-6/qt.html#HighDpiScaleFactorRoundingPolicy-enum
[2] https://doc.qt.io/qt-6/highdpi.html#environment-variable-reference
[3] https://doc.qt.io/qt-6/qguiapplication.html#setHighDpiScaleFactorRoundingPolicy
Change-Id: I8eb6911d4dd5faf00912b8f15a58e0bdace1995a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164768
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
(cherry picked from commit 07688e864c913e005dcae366cf10702404a73d80)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164744
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
---
vcl/qt5/QtInstance.cxx | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/vcl/qt5/QtInstance.cxx b/vcl/qt5/QtInstance.cxx
index 4880c1bdec55..f87cdef9348e 100644
--- a/vcl/qt5/QtInstance.cxx
+++ b/vcl/qt5/QtInstance.cxx
@@ -708,6 +708,11 @@ std::unique_ptr<QApplication> QtInstance::CreateQApplication(int& nArgc, char**
// for scaled icons in the native menus
QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif
+ // force Qt::HighDpiScaleFactorRoundingPolicy::Round, which is the Qt 5 default
+ // policy and prevents incorrect rendering with the Qt 6 default policy
+ // Qt::HighDpiScaleFactorRoundingPolicy::PassThrough (tdf#159915)
+ QGuiApplication::setHighDpiScaleFactorRoundingPolicy(
+ Qt::HighDpiScaleFactorRoundingPolicy::Round);
FreeableCStr session_manager;
if (getenv("SESSION_MANAGER") != nullptr)
--
cgit v1.2.3

View file

@ -20,7 +20,7 @@ pkgbase=libreoffice-fresh
pkgname=('libreoffice-fresh-sdk' 'libreoffice-fresh')
_LOver=24.2.1.2
pkgver=24.2.1
pkgrel=4
pkgrel=5
arch=('x86_64')
license=('MPL-2.0' 'LGPL-3.0-or-later')
url="https://www.libreoffice.org/"
@ -74,6 +74,7 @@ source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc}
623ea5c.diff
libreoffice-7.5.8.2-icu-74-compatibility.patch
kf6_buildfix.diff
ForceQt_HighDpiScaleFactorRoundingPolicy_Round.diff
soffice-template.desktop.in
libreoffice-fresh.sh libreoffice-fresh.csh)
noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
@ -128,6 +129,7 @@ sha256sums=('3ccf577e8f665059ed5a06577b3b37278080be9f29cc4ad3352857a8f2549fa8'
'440c9af5f3d1213d8ed7177282380f25cbc981cabc8b590dcb777aaae84178e5'
'd7b952a51e1e40d3faf2f465b68f46d56828d8c46948748fa82fe82a29af2599'
'f7905962a634ab4ab5c5e591c1816e6baf3f66db91adfeee25c631b6939110ef'
'c69bd89feeb033f8d4a3950718cdc04a4f7601f556732dac3f050ac39a3c25cb'
'd0be8099cbee3c9dfda694a828149b881c345b204ab68826f317580aafb50879'
'9fb33dbc3ffeb6af2ea7341b58242142d4eca903584c21c5f4b44ff27fbf5b5f'
'512355b5ef646791089da8c2b35cf8b019673c0c8a58685962af3b5d9eb5d6bb')
@ -156,6 +158,9 @@ prepare() {
# fix KF& build - https://gerrit.libreoffice.org/c/core/+/163237
patch -Np1 -i "${srcdir}"/kf6_buildfix.diff
# fix KF6 fractional scaling #2; https://gerrit.libreoffice.org/c/core/+/164744
patch -Np1 -i "${srcdir}"/ForceQt_HighDpiScaleFactorRoundingPolicy_Round.diff
#use the CFLAGS but remove the LibO overridden ones
for i in $CFLAGS; do
case "$i" in