diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2021-12-07 21:02:41 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2021-12-08 08:59:52 +0100 |
commit | 05c9b4b9d66f98f4603c8383ddb2b22f485b8269 (patch) | |
tree | da9fc9f6acca9b67079d09d5e42d7dec0035f84d /source/kde/kde/patch/libkscreen/cf0921f3fbde31cb94b9ccddcaba36da3a488483.patch | |
parent | 98305afe736482e41db5c6d17ac94abe411bee86 (diff) | |
download | current-05c9b4b9d66f98f4603c8383ddb2b22f485b8269.tar.gz current-05c9b4b9d66f98f4603c8383ddb2b22f485b8269.tar.xz |
Tue Dec 7 21:02:41 UTC 202120211207210241
ap/vim-8.2.3754-x86_64-1.txz: Upgraded.
d/Cython-0.29.25-x86_64-1.txz: Upgraded.
d/rust-1.57.0-x86_64-1.txz: Upgraded.
kde/kscreen-5.23.4-x86_64-2.txz: Rebuilt.
Applied upstream patches:
[PATCH 1/4] Compute logicalSize taking into account current config.
[PATCH 2/4] Update screen size when mode changes.
[PATCH 3/4] Ensure to set outputs explicitLogicalSize upon loading config.
[PATCH 4/4] Fix output identifier window positioning in wayland with some
scale.
Thanks to Heinz Wiesinger.
kde/libkscreen-5.23.4-x86_64-2.txz: Rebuilt.
Applied upstream patches:
[PATCH] XrandR: Fix impossibilty to change resolution in VirtualBox.
[PATCH] Under X11 ignore per-screen scale to compute logicalSize.
Thanks to Heinz Wiesinger.
l/glib-networking-2.70.1-x86_64-1.txz: Upgraded.
l/imagemagick-7.1.0_17-x86_64-1.txz: Upgraded.
l/vte-0.66.2-x86_64-1.txz: Upgraded.
n/dovecot-2.3.17.1-x86_64-1.txz: Upgraded.
xap/mozilla-firefox-91.4.0esr-x86_64-1.txz: Upgraded.
This release contains security fixes and improvements.
For more information, see:
https://www.mozilla.org/en-US/firefox/91.4.0/releasenotes/
https://www.mozilla.org/security/advisories/mfsa2021-53/
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43536
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43537
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43538
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43539
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43541
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43542
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43543
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43545
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43546
https://bugzilla.mozilla.org/show_bug.cgi?id=1737751
(* Security fix *)
xap/vim-gvim-8.2.3754-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/kde/kde/patch/libkscreen/cf0921f3fbde31cb94b9ccddcaba36da3a488483.patch')
-rw-r--r-- | source/kde/kde/patch/libkscreen/cf0921f3fbde31cb94b9ccddcaba36da3a488483.patch | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/source/kde/kde/patch/libkscreen/cf0921f3fbde31cb94b9ccddcaba36da3a488483.patch b/source/kde/kde/patch/libkscreen/cf0921f3fbde31cb94b9ccddcaba36da3a488483.patch new file mode 100644 index 000000000..38e932be9 --- /dev/null +++ b/source/kde/kde/patch/libkscreen/cf0921f3fbde31cb94b9ccddcaba36da3a488483.patch @@ -0,0 +1,219 @@ +From cf0921f3fbde31cb94b9ccddcaba36da3a488483 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?M=C3=A9ven=20Car?= <meven29@gmail.com> +Date: Thu, 2 Dec 2021 16:04:20 +0000 +Subject: [PATCH] Under X11 ignore per-screen scale to compute logicalSize + +--- + src/config.cpp | 32 ++++++++++++++++++++++++++++++++ + src/config.h | 4 ++++ + src/output.cpp | 39 +++++++++------------------------------ + src/output.h | 18 ++++-------------- + 4 files changed, 49 insertions(+), 44 deletions(-) + mode change 100644 => 100755 src/output.h + +diff --git a/src/config.cpp b/src/config.cpp +index 37e1038..41abf70 100644 +--- a/src/config.cpp ++++ b/src/config.cpp +@@ -325,6 +325,7 @@ void Config::setPrimaryOutput(const OutputPtr &newPrimary) + void Config::addOutput(const OutputPtr &output) + { + d->outputs.insert(output->id(), output); ++ output->setExplicitLogicalSize(logicalSizeForOutput(*output)); + connect(output.data(), &KScreen::Output::isPrimaryChanged, d, &KScreen::Config::Private::onPrimaryOutputChanged); + + Q_EMIT outputAdded(output); +@@ -391,6 +392,37 @@ void Config::apply(const ConfigPtr &other) + setValid(other->isValid()); + } + ++QRect Config::outputGeometryForOutput(const KScreen::Output &output) const ++{ ++ QSize size = logicalSizeForOutput(output).toSize(); ++ if (!size.isValid()) { ++ return QRect(); ++ } ++ ++ return QRect(output.pos(), size); ++} ++ ++QSizeF Config::logicalSizeForOutput(const KScreen::Output &output) const ++{ ++ QSizeF size = output.enforcedModeSize(); ++ if (!size.isValid()) { ++ return QSizeF(); ++ } ++ // ignore scale where scaling is not per-output ++ if (supportedFeatures().testFlag(Feature::PerOutputScaling)) { ++ size = size / output.scale(); ++ } ++ ++ // We can't use output.size(), because it does not reflect the actual rotation() set by caller. ++ // It is only updated when we get update from KScreen, but not when user changes mode or ++ // rotation manually. ++ ++ if (!output.isHorizontal()) { ++ size = size.transposed(); ++ } ++ return size; ++} ++ + QDebug operator<<(QDebug dbg, const KScreen::ConfigPtr &config) + { + if (config) { +diff --git a/src/config.h b/src/config.h +index 551d7d0..4629dab 100644 +--- a/src/config.h ++++ b/src/config.h +@@ -190,6 +190,10 @@ public: + */ + void setTabletModeEngaged(bool engaged); + ++ QRect outputGeometryForOutput(const KScreen::Output &output) const; ++ ++ QSizeF logicalSizeForOutput(const KScreen::Output &output) const; ++ + Q_SIGNALS: + void outputAdded(const KScreen::OutputPtr &output); + void outputRemoved(int outputId); +diff --git a/src/output.cpp b/src/output.cpp +index c7f5949..a0fae28 100644 +--- a/src/output.cpp ++++ b/src/output.cpp +@@ -13,6 +13,7 @@ + #include "mode.h" + + #include <QCryptographicHash> ++#include <QGuiApplication> + #include <QRect> + #include <QScopedPointer> + #include <QStringList> +@@ -28,7 +29,7 @@ public: + , replicationSource(0) + , rotation(None) + , scale(1.0) +- , logicalSize(QSizeF()) ++ , explicitLogicalSize(QSizeF()) + , connected(false) + , enabled(false) + , primary(false) +@@ -87,7 +88,7 @@ public: + QSize size; + Rotation rotation; + qreal scale; +- QSizeF logicalSize; ++ QSizeF explicitLogicalSize; + bool connected; + bool enabled; + bool primary; +@@ -459,40 +460,18 @@ void Output::setScale(qreal factor) + Q_EMIT scaleChanged(); + } + +-QSizeF Output::logicalSize() const +-{ +- if (d->logicalSize.isValid()) { +- return d->logicalSize; +- } +- +- QSizeF size = enforcedModeSize(); +- if (!size.isValid()) { +- return QSizeF(); +- } +- size = size / d->scale; +- +- // We can't use d->size, because d->size does not reflect the actual rotation() set by caller. +- // It is only updated when we get update from KScreen, but not when user changes mode or +- // rotation manually. +- +- if (!isHorizontal()) { +- size = size.transposed(); +- } +- return size; +-} +- + QSizeF Output::explicitLogicalSize() const + { +- return d->logicalSize; ++ return d->explicitLogicalSize; + } + +-void Output::setLogicalSize(const QSizeF &size) ++void Output::setExplicitLogicalSize(const QSizeF &size) + { +- if (qFuzzyCompare(d->logicalSize.width(), size.width()) && qFuzzyCompare(d->logicalSize.height(), size.height())) { ++ if (qFuzzyCompare(d->explicitLogicalSize.width(), size.width()) && qFuzzyCompare(d->explicitLogicalSize.height(), size.height())) { + return; + } +- d->logicalSize = size; +- Q_EMIT logicalSizeChanged(); ++ d->explicitLogicalSize = size; ++ Q_EMIT explicitLogicalSizeChanged(); + } + + bool Output::isConnected() const +@@ -628,7 +607,7 @@ QSize Output::enforcedModeSize() const + + QRect Output::geometry() const + { +- QSize size = logicalSize().toSize(); ++ QSize size = explicitLogicalSize().toSize(); + if (!size.isValid()) { + return QRect(); + } +diff --git a/src/output.h b/src/output.h +old mode 100644 +new mode 100755 +index 2b23ac4..7edb74c +--- a/src/output.h ++++ b/src/output.h +@@ -47,7 +47,7 @@ public: + Q_PROPERTY(QSize sizeMm READ sizeMm CONSTANT) + Q_PROPERTY(qreal scale READ scale WRITE setScale NOTIFY scaleChanged) + Q_PROPERTY(bool followPreferredMode READ followPreferredMode WRITE setFollowPreferredMode NOTIFY followPreferredModeChanged) +- Q_PROPERTY(QSizeF logicalSize READ logicalSize WRITE setLogicalSize NOTIFY logicalSizeChanged) ++ Q_PROPERTY(QSizeF explicitLogicalSize READ explicitLogicalSize WRITE setExplicitLogicalSize NOTIFY explicitLogicalSizeChanged) + Q_PROPERTY(Capabilities capabilities READ capabilities NOTIFY capabilitiesChanged) + Q_PROPERTY(uint32_t overscan READ overscan WRITE setOverscan NOTIFY overscanChanged) + Q_PROPERTY(VrrPolicy vrrPolicy READ vrrPolicy WRITE setVrrPolicy NOTIFY vrrPolicyChanged) +@@ -311,16 +311,6 @@ public: + */ + void setScale(qreal factor); + +- /** +- * The logical size is the output's representation internal to the display server and its +- * overall screen geometry. +- * +- * returns the logical size of this output +- * +- * @since 5.18 +- */ +- QSizeF logicalSize() const; +- + /** + * The logical size is the output's representation internal to the display server and its + * overall screen geometry. +@@ -338,9 +328,9 @@ public: + * + * @param size of this output in logical space + * +- * @since 5.18 ++ * @since 5.24 + */ +- void setLogicalSize(const QSizeF &size); ++ void setExplicitLogicalSize(const QSizeF &size); + + /** + * @returns whether the mode should be changed to the new preferred mode +@@ -421,7 +411,7 @@ Q_SIGNALS: + void clonesChanged(); + void replicationSourceChanged(); + void scaleChanged(); +- void logicalSizeChanged(); ++ void explicitLogicalSizeChanged(); + void followPreferredModeChanged(bool followPreferredMode); + void capabilitiesChanged(); + void overscanChanged(); +-- +GitLab + |