parent
887a64334c
commit
43224bbc7c
@ -1,53 +0,0 @@
|
|||||||
From 3c85e2e8899d1253430783a618d7584d985bd614 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
|
||||||
Date: Tue, 21 Feb 2023 16:03:51 +0100
|
|
||||||
Subject: [PATCH] Use the QScreen of the QWindow as default output
|
|
||||||
|
|
||||||
If the Window::setDesiredOutput API was not called for the QWindow, use
|
|
||||||
QWindow::screen(). This allows assigning QWindows to specific screens using
|
|
||||||
the plain Qt API.
|
|
||||||
|
|
||||||
Passing nullptr to Window::setDesiredOutput explicitly results in nil as
|
|
||||||
desired output for the layer, which lets the compositor select a screen.
|
|
||||||
---
|
|
||||||
src/interfaces/window.cpp | 10 ++++++++--
|
|
||||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/interfaces/window.cpp b/src/interfaces/window.cpp
|
|
||||||
index 477b74e..7aa39f4 100644
|
|
||||||
--- a/src/interfaces/window.cpp
|
|
||||||
+++ b/src/interfaces/window.cpp
|
|
||||||
@@ -8,6 +8,7 @@
|
|
||||||
#include <layershellqt_logging.h>
|
|
||||||
|
|
||||||
#include <QPointer>
|
|
||||||
+#include <optional>
|
|
||||||
|
|
||||||
using namespace LayerShellQt;
|
|
||||||
|
|
||||||
@@ -26,7 +27,7 @@ public:
|
|
||||||
Window::KeyboardInteractivity keyboardInteractivity = Window::KeyboardInteractivityExclusive;
|
|
||||||
Window::Layer layer = Window::LayerTop;
|
|
||||||
QMargins margins;
|
|
||||||
- QPointer<QScreen> desiredOutput;
|
|
||||||
+ std::optional<QPointer<QScreen>> desiredOutput;
|
|
||||||
};
|
|
||||||
|
|
||||||
static QMap<QWindow *, Window *> s_map;
|
|
||||||
@@ -103,7 +104,12 @@ Window::Layer Window::layer() const
|
|
||||||
|
|
||||||
QScreen *Window::desiredOutput() const
|
|
||||||
{
|
|
||||||
- return d->desiredOutput;
|
|
||||||
+ // Don't use .value_or here to avoid a temporary QPointer
|
|
||||||
+ if (d->desiredOutput.has_value()) {
|
|
||||||
+ return d->desiredOutput.value();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return d->parentWindow->screen();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Window::setDesiredOutput(QScreen *output)
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
@ -1 +1 @@
|
|||||||
SHA512 (layer-shell-qt-5.27.1.tar.xz) = c8da1f2052a2b444ac267e84a4eed45beb9cbd754e9579f042c81ceeb0c0db1b963ac111951394dfbc2ff80f65751c4bf742bdf6cc15b3e0766fa5ee02578e63
|
SHA512 (layer-shell-qt-5.27.2.tar.xz) = 5ce3f05b05c3666cd5e957535a4c01c5b92da51e9d2341f314a11b4c9f304cd52f36bfba7e68bfa3cd2d282d35c8a650f20b7ce99327ad68191a96752369ae25
|
||||||
|
Loading…
Reference in new issue