Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package layer-shell-qt6 for openSUSE:Factory
checked in at 2026-02-16 13:06:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/layer-shell-qt6 (Old)
and /work/SRC/openSUSE:Factory/.layer-shell-qt6.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "layer-shell-qt6"
Mon Feb 16 13:06:29 2026 rev:37 rq:1333084 version:6.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/layer-shell-qt6/layer-shell-qt6.changes
2026-01-18 22:20:18.087152229 +0100
+++
/work/SRC/openSUSE:Factory/.layer-shell-qt6.new.1977/layer-shell-qt6.changes
2026-02-16 13:10:11.356204950 +0100
@@ -1,0 +2,35 @@
+Thu Feb 12 19:43:12 UTC 2026 - Fabian Vogt <[email protected]>
+
+- Update to 6.6.0:
+ * New bugfix release
+ * For more details see https://kde.org/announcements/plasma/6/6.6.0
+- Changes since 6.5.91:
+ * Update version for new release 6.6.0
+
+-------------------------------------------------------------------
+Wed Jan 28 16:14:31 UTC 2026 - Fabian Vogt <[email protected]>
+
+- Update to 6.5.91:
+ * New bugfix release
+ * For more details see https://kde.org/announcements/plasma/6/6.5.91
+- Changes since 6.5.90:
+ * Update version for new release 6.5.91
+ * Add Window::screenConfiguration() shim
+ * Allow specifying explicit desired screen
+
+-------------------------------------------------------------------
+Sat Jan 17 20:26:52 UTC 2026 - Fabian Vogt <[email protected]>
+
+- Update to 6.5.90:
+ * New feature release
+ * For more details see https://kde.org/announcements/plasma/6/6.5.90
+- Changes since 6.5.5:
+ * Update version for new release 6.5.90
+ * Provide serial for requesting an activation token
+ * Deprecate Shell::useLayerShell()
+ * Window: Ensure we integrate windows that were already were shown in a
different shell
+ * window: Improve how we tell the window to do layer-shell
+ * Drop obsolete code for Qt versions lower than 6.9
+ * Update version for new release 6.5.80
+
+-------------------------------------------------------------------
Old:
----
layer-shell-qt-6.5.5.tar.xz
layer-shell-qt-6.5.5.tar.xz.sig
New:
----
layer-shell-qt-6.6.0.tar.xz
layer-shell-qt-6.6.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ layer-shell-qt6.spec ++++++
--- /var/tmp/diff_new_pack.dp2BBd/_old 2026-02-16 13:10:13.616298985 +0100
+++ /var/tmp/diff_new_pack.dp2BBd/_new 2026-02-16 13:10:13.628299484 +0100
@@ -27,14 +27,14 @@
%define rname layer-shell-qt
%bcond_without released
Name: layer-shell-qt6
-Version: 6.5.5
+Version: 6.6.0
Release: 0
Summary: wlr-layer-shell integration for Qt
License: LGPL-3.0-or-later
URL: https://www.kde.org
-Source:
https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz
+Source: %{rname}-%{version}.tar.xz
%if %{with released}
-Source1:
https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz.sig
+Source1: %{rname}-%{version}.tar.xz.sig
Source2: plasma.keyring
%endif
BuildRequires: kf6-extra-cmake-modules >= %{kf6_version}
++++++ layer-shell-qt-6.5.5.tar.xz -> layer-shell-qt-6.6.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/CMakeLists.txt
new/layer-shell-qt-6.6.0/CMakeLists.txt
--- old/layer-shell-qt-6.5.5/CMakeLists.txt 2026-01-13 13:59:38.000000000
+0100
+++ new/layer-shell-qt-6.6.0/CMakeLists.txt 2026-02-12 11:05:18.000000000
+0100
@@ -4,13 +4,13 @@
cmake_minimum_required(VERSION 3.16)
project(layershellqt)
-set(PROJECT_VERSION "6.5.5")
+set(PROJECT_VERSION "6.6.0")
set(PROJECT_VERSION_MAJOR 6)
set(CMAKE_C_STANDARD 99)
-set(QT_MIN_VERSION "6.9.0")
-set(KF6_MIN_VERSION "6.18.0")
+set(QT_MIN_VERSION "6.10.0")
+set(KF6_MIN_VERSION "6.22.0")
set(KDE_COMPILERSETTINGS_LEVEL "5.82")
set(CMAKE_CXX_STANDARD 20)
@@ -32,6 +32,7 @@
include(ECMQtDeclareLoggingCategory)
include(ECMQmlModule)
include(KDEGitCommitHooks)
+include(ECMGenerateExportHeader)
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS WaylandClient
Qml)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/CMakeLists.txt
new/layer-shell-qt-6.6.0/src/CMakeLists.txt
--- old/layer-shell-qt-6.5.5/src/CMakeLists.txt 2026-01-13 13:59:38.000000000
+0100
+++ new/layer-shell-qt-6.6.0/src/CMakeLists.txt 2026-02-12 11:05:18.000000000
+0100
@@ -64,10 +64,12 @@
)
-generate_export_header(LayerShellQtInterface
+ecm_generate_export_header(LayerShellQtInterface
BASE_NAME LayerShellQtInterface
EXPORT_MACRO_NAME LAYERSHELLQT_EXPORT
EXPORT_FILE_NAME LayerShellQt/layershellqt_export.h
+ VERSION ${LAYERSHELLQT_VERSION}
+ DEPRECATION_VERSIONS 6.6
)
install(TARGETS layer-shell
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/declarative/CMakeLists.txt
new/layer-shell-qt-6.6.0/src/declarative/CMakeLists.txt
--- old/layer-shell-qt-6.5.5/src/declarative/CMakeLists.txt 2026-01-13
13:59:38.000000000 +0100
+++ new/layer-shell-qt-6.6.0/src/declarative/CMakeLists.txt 2026-02-12
11:05:18.000000000 +0100
@@ -4,7 +4,7 @@
ecm_add_qml_module(LayerShellQtQml
URI "org.kde.layershell"
VERSION 1.0
- SOURCES types.h types.cpp
+ SOURCES types.h
GENERATE_PLUGIN_SOURCE)
target_link_libraries(LayerShellQtQml PRIVATE Qt::Qml LayerShellQtInterface)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/declarative/types.cpp
new/layer-shell-qt-6.6.0/src/declarative/types.cpp
--- old/layer-shell-qt-6.5.5/src/declarative/types.cpp 2026-01-13
13:59:38.000000000 +0100
+++ new/layer-shell-qt-6.6.0/src/declarative/types.cpp 1970-01-01
01:00:00.000000000 +0100
@@ -1,49 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2023 Aleix Pol Gonzalez
<[email protected]>
- *
- * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR
LicenseRef-KDE-Accepted-LGPL
- */
-
-#include "types.h"
-
-#if QT_VERSION < QT_VERSION_CHECK(6, 8, 1)
-int QQmlMarginsValueType::left() const
-{
- return m.left();
-}
-
-int QQmlMarginsValueType::top() const
-{
- return m.top();
-}
-
-int QQmlMarginsValueType::right() const
-{
- return m.right();
-}
-
-int QQmlMarginsValueType::bottom() const
-{
- return m.bottom();
-}
-
-void QQmlMarginsValueType::setLeft(int left)
-{
- m.setLeft(left);
-}
-
-void QQmlMarginsValueType::setTop(int top)
-{
- m.setTop(top);
-}
-
-void QQmlMarginsValueType::setRight(int right)
-{
- m.setRight(right);
-}
-
-void QQmlMarginsValueType::setBottom(int bottom)
-{
- m.setBottom(bottom);
-}
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/declarative/types.h
new/layer-shell-qt-6.6.0/src/declarative/types.h
--- old/layer-shell-qt-6.5.5/src/declarative/types.h 2026-01-13
13:59:38.000000000 +0100
+++ new/layer-shell-qt-6.6.0/src/declarative/types.h 2026-02-12
11:05:18.000000000 +0100
@@ -17,39 +17,3 @@
QML_UNCREATABLE("")
QML_ATTACHED(LayerShellQt::Window)
};
-
-// available upstream since
https://invent.kde.org/qt/qt/qtdeclarative/-/commit/a398101f715bfc447aa889fc9c58b13bfe75ab47
-#if QT_VERSION < QT_VERSION_CHECK(6, 8, 1)
-struct Q_QML_EXPORT QQmlMarginsValueType {
- QMargins m;
- Q_PROPERTY(int left READ left WRITE setLeft FINAL)
- Q_PROPERTY(int right READ right WRITE setRight FINAL)
- Q_PROPERTY(int top READ top WRITE setTop FINAL)
- Q_PROPERTY(int bottom READ bottom WRITE setBottom FINAL)
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QMargins)
- QML_EXTENDED(QQmlMarginsValueType)
- QML_STRUCTURED_VALUE
-
-public:
- QQmlMarginsValueType() = default;
- Q_INVOKABLE QQmlMarginsValueType(const QMarginsF &margins)
- : m(margins.toMargins())
- {
- }
- int left() const;
- int right() const;
- int top() const;
- int bottom() const;
- void setLeft(int);
- void setRight(int);
- void setTop(int);
- void setBottom(int);
-
- operator QMargins() const
- {
- return m;
- }
-};
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/interfaces/shell.cpp
new/layer-shell-qt-6.6.0/src/interfaces/shell.cpp
--- old/layer-shell-qt-6.5.5/src/interfaces/shell.cpp 2026-01-13
13:59:38.000000000 +0100
+++ new/layer-shell-qt-6.6.0/src/interfaces/shell.cpp 2026-02-12
11:05:18.000000000 +0100
@@ -5,6 +5,9 @@
*/
#include "shell.h"
+
+#if LAYERSHELLQTINTERFACE_BUILD_DEPRECATED_SINCE(6, 6)
+
#include <QByteArray>
#include <layershellqt_logging.h>
#include <qglobal.h>
@@ -18,3 +21,4 @@
qCDebug(LAYERSHELLQT) << "Unable to set
QT_WAYLAND_SHELL_INTEGRATION=layer-shell";
}
}
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/interfaces/shell.h
new/layer-shell-qt-6.6.0/src/interfaces/shell.h
--- old/layer-shell-qt-6.5.5/src/interfaces/shell.h 2026-01-13
13:59:38.000000000 +0100
+++ new/layer-shell-qt-6.6.0/src/interfaces/shell.h 2026-02-12
11:05:18.000000000 +0100
@@ -8,7 +8,9 @@
#define LAYERSHELLQTSHELL_H
#include "layershellqt_export.h"
-#include "window.h"
+
+#if LAYERSHELLQTINTERFACE_ENABLE_DEPRECATED_SINCE(6, 6)
+
#include <QString>
namespace LayerShellQt
@@ -19,9 +21,11 @@
class LAYERSHELLQT_EXPORT Shell
{
public:
+ LAYERSHELLQTINTERFACE_DEPRECATED_VERSION(6, 6, "Calling useLayerShell is
not needed since Qt 6.5")
static void useLayerShell();
};
}
+#endif
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/interfaces/window.cpp
new/layer-shell-qt-6.6.0/src/interfaces/window.cpp
--- old/layer-shell-qt-6.5.5/src/interfaces/window.cpp 2026-01-13
13:59:38.000000000 +0100
+++ new/layer-shell-qt-6.6.0/src/interfaces/window.cpp 2026-02-12
11:05:18.000000000 +0100
@@ -9,7 +9,9 @@
#include <layershellqt_logging.h>
+#include <QPlatformSurfaceEvent>
#include <QPointer>
+#include <mutex>
#include <optional>
#include <QtWaylandClient/private/qwaylandwindow_p.h>
@@ -33,7 +35,8 @@
Window::Layer layer = Window::LayerTop;
QMargins margins;
QSize desiredSize = QSize(0, 0);
- Window::ScreenConfiguration screenConfiguration =
Window::ScreenFromQWindow;
+ QPointer<QScreen> screen;
+ bool wantsToBeOnActiveScreen = false;
bool closeOnDismissed = true;
bool activateOnShow = true;
};
@@ -151,14 +154,73 @@
return d->layer;
}
+#if LAYERSHELLQTINTERFACE_BUILD_DEPRECATED_SINCE(6, 6)
Window::ScreenConfiguration Window::screenConfiguration() const
{
- return d->screenConfiguration;
+ if (wantsToBeOnActiveScreen()) {
+ return ScreenFromCompositor;
+ } else {
+ // If an explicit screen is set, it's quite inaccurate but it should
be fine.
+ return ScreenFromQWindow;
+ }
}
-void Window::setScreenConfiguration(Window::ScreenConfiguration
screenConfiguration)
+void Window::setScreenConfiguration(ScreenConfiguration screenConfiguration)
{
- d->screenConfiguration = screenConfiguration;
+ static std::once_flag deprecationFlag;
+ std::call_once(deprecationFlag, []() {
+ qWarning() << "LayerShellQt.Window.screenConfiguration is deprecated
use screen and wantsToBeOnActiveScreen instead";
+ });
+
+ if (screenConfiguration == ScreenFromCompositor) {
+ setWantsToBeOnActiveScreen(true);
+ } else {
+ setWantsToBeOnActiveScreen(false);
+ setScreen(nullptr);
+ }
+}
+#endif
+
+void Window::setWantsToBeOnActiveScreen(bool set)
+{
+ if (d->wantsToBeOnActiveScreen == set) {
+ return;
+ }
+
+ d->wantsToBeOnActiveScreen = set;
+
+ if (d->wantsToBeOnActiveScreen && d->screen) {
+ d->screen = nullptr;
+ Q_EMIT screenChanged();
+ }
+
+ Q_EMIT wantsToBeOnActiveScreenChanged();
+}
+
+bool Window::wantsToBeOnActiveScreen() const
+{
+ return d->wantsToBeOnActiveScreen;
+}
+
+void Window::setScreen(QScreen *screen)
+{
+ if (d->screen == screen) {
+ return;
+ }
+
+ d->screen = screen;
+
+ if (d->screen && d->wantsToBeOnActiveScreen) {
+ d->wantsToBeOnActiveScreen = false;
+ Q_EMIT wantsToBeOnActiveScreenChanged();
+ }
+
+ Q_EMIT screenChanged();
+}
+
+QScreen *Window::screen() const
+{
+ return d->screen;
}
bool Window::closeOnDismissed() const
@@ -186,12 +248,35 @@
, d(new WindowPrivate(window))
{
s_map.insert(d->parentWindow, this);
+ window->installEventFilter(this);
+ if (window->isVisible()) {
+ qCWarning(LAYERSHELLQT) << d->parentWindow << "already has a shell
integration. Call QWindow::close() first and show it again.";
+ }
+
+ if (window->handle()) {
+ initializeShell();
+ }
+}
- window->create();
+bool Window::eventFilter(QObject *watched, QEvent *event)
+{
+ auto window = qobject_cast<QWindow *>(watched);
+ if (!window) {
+ return false;
+ }
+ if (event->type() == QEvent::PlatformSurface) {
+ if (auto pse = static_cast<QPlatformSurfaceEvent *>(event);
pse->surfaceEventType() == QPlatformSurfaceEvent::SurfaceCreated) {
+ initializeShell();
+ }
+ }
+ return false;
+}
- auto waylandWindow = dynamic_cast<QtWaylandClient::QWaylandWindow
*>(window->handle());
+void Window::initializeShell()
+{
+ auto waylandWindow = dynamic_cast<QtWaylandClient::QWaylandWindow
*>(d->parentWindow->handle());
if (!waylandWindow) {
- qCWarning(LAYERSHELLQT) << window << "is not a wayland window. Not
creating zwlr_layer_surface";
+ qCWarning(LAYERSHELLQT) << d->parentWindow << "is not a wayland
window. Not creating zwlr_layer_surface";
return;
}
@@ -205,7 +290,6 @@
return;
}
}
-
waylandWindow->setShellIntegration(shellIntegration);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/interfaces/window.h
new/layer-shell-qt-6.6.0/src/interfaces/window.h
--- old/layer-shell-qt-6.5.5/src/interfaces/window.h 2026-01-13
13:59:38.000000000 +0100
+++ new/layer-shell-qt-6.6.0/src/interfaces/window.h 2026-02-12
11:05:18.000000000 +0100
@@ -27,8 +27,12 @@
Q_PROPERTY(qint32 exclusionZone READ exclusionZone WRITE setExclusiveZone
NOTIFY exclusionZoneChanged)
Q_PROPERTY(Layer layer READ layer WRITE setLayer NOTIFY layerChanged)
Q_PROPERTY(KeyboardInteractivity keyboardInteractivity READ
keyboardInteractivity WRITE setKeyboardInteractivity NOTIFY
keyboardInteractivityChanged)
- Q_PROPERTY(ScreenConfiguration screenConfiguration READ
screenConfiguration WRITE setScreenConfiguration)
Q_PROPERTY(bool activateOnShow READ activateOnShow WRITE setActivateOnShow)
+ Q_PROPERTY(bool wantsToBeOnActiveScreen READ wantsToBeOnActiveScreen WRITE
setWantsToBeOnActiveScreen NOTIFY wantsToBeOnActiveScreenChanged)
+ Q_PROPERTY(QScreen *screen READ screen WRITE setScreen NOTIFY
screenChanged)
+#if LAYERSHELLQTINTERFACE_ENABLE_DEPRECATED_SINCE(6, 6)
+ Q_PROPERTY(ScreenConfiguration screenConfiguration READ
screenConfiguration WRITE setScreenConfiguration)
+#endif
public:
~Window() override;
@@ -64,17 +68,6 @@
};
Q_ENUM(KeyboardInteractivity)
- /**
- * This enum type is used to specify which screen to place the surface on.
- * ScreenFromQWindow (the default) reads QWindow::screen() while
ScreenFromCompositor
- * passes nil and lets the compositor decide.
- */
- enum ScreenConfiguration {
- ScreenFromQWindow = 0,
- ScreenFromCompositor = 1,
- };
- Q_ENUM(ScreenConfiguration)
-
void setAnchors(Anchors anchor);
Anchors anchors() const;
@@ -96,8 +89,48 @@
void setLayer(Layer layer);
Layer layer() const;
+#if LAYERSHELLQTINTERFACE_ENABLE_DEPRECATED_SINCE(6, 6)
+ /**
+ * This enum type is used to specify which screen to place the surface on.
+ * ScreenFromQWindow (the default) reads QWindow::screen() while
ScreenFromCompositor
+ * passes nil and lets the compositor decide.
+ */
+ LAYERSHELLQTINTERFACE_DEPRECATED_VERSION(6, 6, "Use
wantsToBeOnActiveScreen and screen instead")
+ enum ScreenConfiguration {
+ ScreenFromQWindow = 0,
+ ScreenFromCompositor = 1,
+ };
+ Q_ENUM(ScreenConfiguration)
+
+ LAYERSHELLQTINTERFACE_DEPRECATED_VERSION(6, 6, "Use
wantsToBeOnActiveScreen and screen instead")
void setScreenConfiguration(ScreenConfiguration screenConfiguration);
+ LAYERSHELLQTINTERFACE_DEPRECATED_VERSION(6, 6, "Use
wantsToBeOnActiveScreen and screen instead")
ScreenConfiguration screenConfiguration() const;
+#endif
+
+ /**
+ * Indicates whether the layer shell surface should be placed on the
active screen based on @a set.
+ *
+ * The active screen depends on the compositor policies.
+ *
+ * If the screen() is @c null and the wantsToBeOnActiveScreen() is @c
false, then the
+ * QWindow::screen() will be used to decide what screen the layer shell
surface should be placed on.
+ *
+ * The screen() will be reset if @a set is @c true.
+ */
+ void setWantsToBeOnActiveScreen(bool set);
+ bool wantsToBeOnActiveScreen() const;
+
+ /**
+ * Indicates that the layer shell surface should be placed on the
specified @a screen.
+ *
+ * If the screen() is @c null and the wantsToBeOnActiveScreen() is @c
false, then the
+ * QWindow::screen() will be used to decide what screen the layer shell
surface should be placed on.
+ *
+ * The wantsToBeOnActiveScreen() will be reset to @c false after calling
this function.
+ */
+ void setScreen(QScreen *screen);
+ QScreen *screen() const;
/**
* Sets a string based identifier for this window.
@@ -138,6 +171,8 @@
static Window *qmlAttachedProperties(QObject *object);
+ bool eventFilter(QObject *watched, QEvent *event) override;
+
Q_SIGNALS:
void anchorsChanged();
void exclusionZoneChanged();
@@ -146,8 +181,12 @@
void desiredSizeChanged();
void keyboardInteractivityChanged();
void layerChanged();
+ void wantsToBeOnActiveScreenChanged();
+ void screenChanged();
private:
+ void initializeShell();
+
Window(QWindow *window);
QScopedPointer<WindowPrivate> d;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/qwaylandlayersurface.cpp
new/layer-shell-qt-6.6.0/src/qwaylandlayersurface.cpp
--- old/layer-shell-qt-6.5.5/src/qwaylandlayersurface.cpp 2026-01-13
13:59:38.000000000 +0100
+++ new/layer-shell-qt-6.6.0/src/qwaylandlayersurface.cpp 2026-02-12
11:05:18.000000000 +0100
@@ -10,6 +10,7 @@
#include "qwaylandlayersurface_p.h"
#include "qwaylandxdgactivationv1_p.h"
+#include <QtWaylandClient/private/qwaylandinputdevice_p.h>
#include <QtWaylandClient/private/qwaylandscreen_p.h>
#include <QtWaylandClient/private/qwaylandsurface_p.h>
#include <QtWaylandClient/private/qwaylandwindow_p.h>
@@ -26,8 +27,13 @@
, m_window(window)
{
wl_output *output = nullptr;
- if (m_interface->screenConfiguration() == Window::ScreenFromQWindow) {
- auto waylandScreen = dynamic_cast<QtWaylandClient::QWaylandScreen
*>(window->window()->screen()->handle());
+ if (!m_interface->wantsToBeOnActiveScreen()) {
+ QScreen *desiredScreen = m_interface->screen();
+ if (!desiredScreen) {
+ desiredScreen = window->window()->screen();
+ }
+
+ auto waylandScreen = dynamic_cast<QtWaylandClient::QWaylandScreen
*>(desiredScreen->handle());
// Qt will always assign a screen to a window, but if the compositor
has no screens available a dummy QScreen object is created
// this will not cast to a QWaylandScreen
if (!waylandScreen) {
@@ -124,13 +130,7 @@
void QWaylandLayerSurface::applyConfigure()
{
-#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
- m_configuring = true;
-#endif
window()->resizeFromApplyConfigure(m_pendingSize);
-#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
- m_configuring = false;
-#endif
}
void QWaylandLayerSurface::setDesiredSize(const QSize &size)
@@ -181,25 +181,12 @@
set_layer(layer);
}
-#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
-void QWaylandLayerSurface::setWindowGeometry(const QRect &geometry)
-{
- if (m_configuring) {
- return;
- }
-
- if (m_interface->desiredSize().isNull()) {
- setDesiredSize(geometry.size());
- }
-}
-#else
void QWaylandLayerSurface::setWindowSize(const QSize &size)
{
if (m_interface->desiredSize().isNull()) {
setDesiredSize(size);
}
}
-#endif
bool QWaylandLayerSurface::requestActivate()
{
@@ -219,7 +206,7 @@
const auto focusWindow = QGuiApplication::focusWindow();
const auto wlWindow = focusWindow ?
static_cast<QtWaylandClient::QWaylandWindow *>(focusWindow->handle()) :
window();
if (const auto seat = wlWindow->display()->lastInputDevice()) {
- const auto tokenProvider =
activation->requestXdgActivationToken(wlWindow->display(),
wlWindow->wlSurface(), 0, QString());
+ const auto tokenProvider =
activation->requestXdgActivationToken(wlWindow->display(),
wlWindow->wlSurface(), seat->serial(), QString());
connect(tokenProvider, &QWaylandXdgActivationTokenV1::done, this,
[this](const QString &token) {
m_shell->activation()->activate(token, window()->wlSurface());
});
@@ -268,13 +255,6 @@
void QWaylandLayerSurface::sendExpose()
{
-#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0)
- window()->handleExpose(QRect(QPoint(), m_pendingSize));
-#elif QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
- window()->sendRecursiveExposeEvent();
-#else
window()->updateExposure();
-#endif
}
-
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/src/qwaylandlayersurface_p.h
new/layer-shell-qt-6.6.0/src/qwaylandlayersurface_p.h
--- old/layer-shell-qt-6.5.5/src/qwaylandlayersurface_p.h 2026-01-13
13:59:38.000000000 +0100
+++ new/layer-shell-qt-6.6.0/src/qwaylandlayersurface_p.h 2026-02-12
11:05:18.000000000 +0100
@@ -43,11 +43,7 @@
void setLayer(uint32_t layer);
void applyConfigure() override;
-#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
- void setWindowGeometry(const QRect &geometry) override;
-#else
void setWindowSize(const QSize &size) override;
-#endif
bool requestActivate() override;
bool requestActivateOnShow() override;
@@ -66,9 +62,6 @@
QString m_activationToken;
bool m_configured = false;
-#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
- bool m_configuring = false;
-#endif
};
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/layer-shell-qt-6.5.5/tests/become-layershell.qml
new/layer-shell-qt-6.6.0/tests/become-layershell.qml
--- old/layer-shell-qt-6.5.5/tests/become-layershell.qml 1970-01-01
01:00:00.000000000 +0100
+++ new/layer-shell-qt-6.6.0/tests/become-layershell.qml 2026-02-12
11:05:18.000000000 +0100
@@ -0,0 +1,42 @@
+/*
+ * SPDX-FileCopyrightText: 2025 Aleix Pol i Gonzalez <[email protected]>
+ *
+ * SPDX-License-Identifier: LGPL-3.0-or-later
+ */
+
+import QtQuick
+import QtQuick.Controls
+import org.kde.layershell 1.0 as LayerShell
+
+Item
+{
+ Button {
+ text: "Convert"
+ anchors.centerIn: parent
+
+ onClicked: {
+ win.close()
+ win.LayerShell.Window.anchors = LayerShell.Window.AnchorLeft;
+ win.LayerShell.Window.layer = LayerShell.Window.LayerTop;
+ win.LayerShell.Window.exclusionZone = -1;
+ win.show()
+ }
+ }
+
+ Window {
+ id: win
+
+ width: 100
+ height: 100
+ Rectangle {
+ anchors.fill: parent
+ color: "red"
+
+ Text {
+ anchors.centerIn: parent
+ text: "top"
+ }
+ }
+ visible: true
+ }
+}