commit
31d599d8f0
@ -0,0 +1,69 @@
|
|||||||
|
From 1be046edd455969b74417ded6871d25eba8a1112 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Edmundson <kde@davidedmundson.co.uk>
|
||||||
|
Date: Mon, 27 Jun 2022 17:12:09 +0200
|
||||||
|
Subject: [PATCH] Disable toplevel fixed positions on Wayland
|
||||||
|
|
||||||
|
Given that the wayland protocol does not have window positions a recent
|
||||||
|
change to Qt development branch avoids having a mismatch of positions
|
||||||
|
and tells client code the window is at the topleft of the screen. This
|
||||||
|
fixes multiple bugs.
|
||||||
|
|
||||||
|
Unfortuantely this breaks a few usages within plasma where a
|
||||||
|
side-channel sends that absolute positional information over a bespoke
|
||||||
|
protocol. Currently we proxy this all through QWindow geometry where the
|
||||||
|
new Qt behaviour will throw is askew.
|
||||||
|
|
||||||
|
Whilst our longterm plans are to find future options away from the
|
||||||
|
plasmashell protocol we may as well have our Qt6
|
||||||
|
build work given the patch is trivial and harmless.
|
||||||
|
|
||||||
|
It also allows for potential backporting if our software is
|
||||||
|
already secured against issues.
|
||||||
|
---
|
||||||
|
krunner/main.cpp | 2 ++
|
||||||
|
shell/main.cpp | 3 +++
|
||||||
|
2 files changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/krunner/main.cpp b/krunner/main.cpp
|
||||||
|
index a05402a01..f19382cad 100644
|
||||||
|
--- a/krunner/main.cpp
|
||||||
|
+++ b/krunner/main.cpp
|
||||||
|
@@ -34,6 +34,7 @@ int main(int argc, char **argv)
|
||||||
|
QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ qputenv("QT_WAYLAND_DISABLE_FIXED_POSITIONS", {});
|
||||||
|
const bool qpaVariable = qEnvironmentVariableIsSet("QT_QPA_PLATFORM");
|
||||||
|
KWorkSpace::detectPlatform(argc, argv);
|
||||||
|
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||||
|
@@ -42,6 +43,7 @@ int main(int argc, char **argv)
|
||||||
|
// don't leak the env variable to processes we start
|
||||||
|
qunsetenv("QT_QPA_PLATFORM");
|
||||||
|
}
|
||||||
|
+ qunsetenv("QT_WAYLAND_DISABLE_FIXED_POSITIONS");
|
||||||
|
KLocalizedString::setApplicationDomain("krunner");
|
||||||
|
|
||||||
|
// TODO: Make it a QGuiApplication once we don't depend on KDELibs4Support
|
||||||
|
diff --git a/shell/main.cpp b/shell/main.cpp
|
||||||
|
index 26e4ecede..147483df4 100644
|
||||||
|
--- a/shell/main.cpp
|
||||||
|
+++ b/shell/main.cpp
|
||||||
|
@@ -79,6 +79,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
|
oldCategoryFilter = QLoggingCategory::installFilter(filterConnectionSyntaxWarning);
|
||||||
|
|
||||||
|
+ qputenv("QT_WAYLAND_DISABLE_FIXED_POSITIONS", {});
|
||||||
|
const bool qpaVariable = qEnvironmentVariableIsSet("QT_QPA_PLATFORM");
|
||||||
|
KWorkSpace::detectPlatform(argc, argv);
|
||||||
|
QApplication app(argc, argv);
|
||||||
|
@@ -86,6 +87,8 @@ int main(int argc, char *argv[])
|
||||||
|
// don't leak the env variable to processes we start
|
||||||
|
qunsetenv("QT_QPA_PLATFORM");
|
||||||
|
}
|
||||||
|
+ qunsetenv("QT_WAYLAND_DISABLE_FIXED_POSITIONS");
|
||||||
|
+
|
||||||
|
KLocalizedString::setApplicationDomain("plasmashell");
|
||||||
|
|
||||||
|
// The executable's path is added to the library/plugin paths.
|
||||||
|
--
|
||||||
|
GitLab
|
@ -0,0 +1,38 @@
|
|||||||
|
From d6d47393bab32dc60b43e0eeac16c035000a0358 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eugene Popov <popov895@ukr.net>
|
||||||
|
Date: Sun, 24 Jul 2022 00:18:44 +0000
|
||||||
|
Subject: [PATCH] [FIX] Unable to remove manually added wallpaper
|
||||||
|
|
||||||
|
It's not necessary to assign m_removableWallpapers asynchronously, because the value assigned to it doesn't depend on the result of that asynch function.
|
||||||
|
|
||||||
|
!!! This MR is for the Plasma/5.25 branch only and it SHOULD NOT be cherry-picket into the master branch.
|
||||||
|
|
||||||
|
BUG: 457019
|
||||||
|
---
|
||||||
|
wallpapers/image/plugin/backgroundlistmodel.cpp | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/wallpapers/image/plugin/backgroundlistmodel.cpp b/wallpapers/image/plugin/backgroundlistmodel.cpp
|
||||||
|
index 8c5630712..0b12470a5 100644
|
||||||
|
--- a/wallpapers/image/plugin/backgroundlistmodel.cpp
|
||||||
|
+++ b/wallpapers/image/plugin/backgroundlistmodel.cpp
|
||||||
|
@@ -107,6 +107,8 @@ void BackgroundListModel::reload(const QStringList &selected)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ m_removableWallpapers = QSet<QString>(selected.constBegin(), selected.constEnd());
|
||||||
|
+
|
||||||
|
const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("wallpapers/"), QStandardPaths::LocateDirectory);
|
||||||
|
|
||||||
|
BackgroundFinder *finder = new BackgroundFinder(m_wallpaper.data(), dirs);
|
||||||
|
@@ -117,7 +119,6 @@ void BackgroundListModel::reload(const QStringList &selected)
|
||||||
|
}
|
||||||
|
|
||||||
|
processPaths(selected + wallpapersFound);
|
||||||
|
- m_removableWallpapers = QSet<QString>(selected.constBegin(), selected.constEnd());
|
||||||
|
});
|
||||||
|
m_findToken = token;
|
||||||
|
finder->start();
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
Loading…
Reference in new issue