linuxOS_AP05/buildroot/package/qt5/qt5wayland/0009-qwaylandxdgshell-Support-switching-between-fullscree.patch
2025-06-02 13:59:07 +08:00

54 lines
2.0 KiB
Diff

From 8f8eaa27439e25bb03444bd24a5c08e5b6271824 Mon Sep 17 00:00:00 2001
From: Jeffy Chen <jeffy.chen@rock-chips.com>
Date: Sat, 9 May 2020 17:23:59 +0800
Subject: [PATCH 09/15] qwaylandxdgshell: Support switching between fullscreen
and maximized
1/ The weston expected a commit to apply new window states.
2/ Switching between fullscreen and maximized requests unsetting the old
state firstly.
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
---
.../shellintegration/xdg-shell/qwaylandxdgshell.cpp | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
index 692e799..7034628 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
@@ -107,6 +107,9 @@ void QWaylandXdgSurface::Toplevel::applyConfigure()
m_xdgSurface->setSizeHints();
+ // Trigger a update to commit new state
+ m_xdgSurface->m_window->window()->requestUpdate();
+
m_applied = m_pending;
qCDebug(lcQpaWayland) << "Applied pending xdg_toplevel configure event:" << m_applied.size << m_applied.states;
}
@@ -170,6 +173,11 @@ void QWaylandXdgSurface::Toplevel::requestWindowStates(Qt::WindowStates states)
// Re-send what's different from the applied state
Qt::WindowStates changedStates = m_applied.states ^ states;
+ if (changedStates & Qt::WindowFullScreen) {
+ if (!(states & Qt::WindowFullScreen))
+ unset_fullscreen();
+ }
+
if (changedStates & Qt::WindowMaximized) {
if (states & Qt::WindowMaximized)
set_maximized();
@@ -180,8 +188,6 @@ void QWaylandXdgSurface::Toplevel::requestWindowStates(Qt::WindowStates states)
if (changedStates & Qt::WindowFullScreen) {
if (states & Qt::WindowFullScreen)
set_fullscreen(nullptr);
- else
- unset_fullscreen();
}
// Minimized state is not reported by the protocol, so always send it
--
2.20.1