Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package layer-shell-qt for openSUSE:Factory checked in at 2022-06-13 13:02:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/layer-shell-qt (Old) and /work/SRC/openSUSE:Factory/.layer-shell-qt.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "layer-shell-qt" Mon Jun 13 13:02:19 2022 rev:19 rq:981914 version:5.25.0 Changes: -------- --- /work/SRC/openSUSE:Factory/layer-shell-qt/layer-shell-qt.changes 2022-05-05 23:05:11.489467281 +0200 +++ /work/SRC/openSUSE:Factory/.layer-shell-qt.new.1548/layer-shell-qt.changes 2022-06-13 13:02:34.573120844 +0200 @@ -1,0 +2,22 @@ +Thu Jun 9 11:15:01 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.25.0 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.25.0 +- Changes since 5.24.90: + * Mark required deps as required (kde#454912) + +------------------------------------------------------------------- +Thu May 19 19:45:55 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.24.90 + * New feature release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.24.90 +- Changes since 5.24.5: + * Minor api doc improvement for api.kde.org + * Build with Qt6 + * Add desiredScreen property to LayerShellQt::Window + +------------------------------------------------------------------- Old: ---- layer-shell-qt-5.24.5.tar.xz layer-shell-qt-5.24.5.tar.xz.sig New: ---- layer-shell-qt-5.25.0.tar.xz layer-shell-qt-5.25.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ layer-shell-qt.spec ++++++ --- /var/tmp/diff_new_pack.yzq1ro/_old 2022-06-13 13:02:35.129121621 +0200 +++ /var/tmp/diff_new_pack.yzq1ro/_new 2022-06-13 13:02:35.133121626 +0200 @@ -24,15 +24,15 @@ %bcond_without released Name: layer-shell-qt -Version: 5.24.5 +Version: 5.25.0 Release: 0 Summary: wlr-layer-shell integration for Qt License: LGPL-3.0-or-later Group: Development/Libraries/KDE URL: https://www.kde.org -Source: https://download.kde.org/stable/plasma/%{version}/layer-shell-qt-%{version}.tar.xz +Source: layer-shell-qt-%{version}.tar.xz %if %{with released} -Source1: https://download.kde.org/stable/plasma/%{version}/layer-shell-qt-%{version}.tar.xz.sig +Source1: layer-shell-qt-%{version}.tar.xz.sig Source2: plasma.keyring %endif BuildRequires: cmake >= 3.16 ++++++ layer-shell-qt-5.24.5.tar.xz -> layer-shell-qt-5.25.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/layer-shell-qt-5.24.5/.gitlab-ci.yml new/layer-shell-qt-5.25.0/.gitlab-ci.yml --- old/layer-shell-qt-5.24.5/.gitlab-ci.yml 2022-05-03 12:13:20.000000000 +0200 +++ new/layer-shell-qt-5.25.0/.gitlab-ci.yml 2022-06-09 11:11:37.000000000 +0200 @@ -4,3 +4,4 @@ include: - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/layer-shell-qt-5.24.5/CMakeLists.txt new/layer-shell-qt-5.25.0/CMakeLists.txt --- old/layer-shell-qt-5.24.5/CMakeLists.txt 2022-05-03 12:13:20.000000000 +0200 +++ new/layer-shell-qt-5.25.0/CMakeLists.txt 2022-06-09 11:11:37.000000000 +0200 @@ -4,20 +4,18 @@ cmake_minimum_required(VERSION 3.16) project(layershellqt) -set(PROJECT_VERSION "5.24.5") +set(PROJECT_VERSION "5.25.0") set(PROJECT_VERSION_MAJOR 5) set(CMAKE_C_STANDARD 99) set(QT_MIN_VERSION "5.15.0") -set(KF5_MIN_VERSION "5.86") +set(KF5_MIN_VERSION "5.91") set(KDE_COMPILERSETTINGS_LEVEL "5.82") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS WaylandClient Qml) -find_package(Qt5XkbCommonSupport REQUIRED PRIVATE) find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${ECM_MODULE_PATH}) @@ -32,10 +30,14 @@ include(KDEClangFormat) include(ECMQtDeclareLoggingCategory) -find_package(WaylandScanner) -find_package(QtWaylandScanner) +find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS WaylandClient Qml) +if (QT_MAJOR_VERSION EQUAL "5") + find_package(Qt5XkbCommonSupport REQUIRED PRIVATE) + find_package(QtWaylandScanner REQUIRED) +endif() +find_package(WaylandScanner REQUIRED) find_package(Wayland 1.3 COMPONENTS Client Server) -find_package(WaylandProtocols) +find_package(WaylandProtocols REQUIRED) find_package(PkgConfig REQUIRED) pkg_check_modules(XKBCOMMON xkbcommon REQUIRED IMPORTED_TARGET) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/layer-shell-qt-5.24.5/LayerShellQtConfig.cmake.in new/layer-shell-qt-5.25.0/LayerShellQtConfig.cmake.in --- old/layer-shell-qt-5.24.5/LayerShellQtConfig.cmake.in 2022-05-03 12:13:20.000000000 +0200 +++ new/layer-shell-qt-5.25.0/LayerShellQtConfig.cmake.in 2022-06-09 11:11:37.000000000 +0200 @@ -4,6 +4,6 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Qt5Gui "@QT_MIN_VERSION@") +find_dependency(Qt@QT_MAJOR_VERSION@Gui "@QT_MIN_VERSION@") include("${CMAKE_CURRENT_LIST_DIR}/LayerShellQtTargets.cmake") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/layer-shell-qt-5.24.5/metainfo.yaml new/layer-shell-qt-5.25.0/metainfo.yaml --- old/layer-shell-qt-5.24.5/metainfo.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/layer-shell-qt-5.25.0/metainfo.yaml 2022-06-09 11:11:37.000000000 +0200 @@ -0,0 +1,14 @@ +maintainer: +- vladz +description: Layer Shell Qt +platforms: + - name: Linux + - name: FreeBSD +portingAid: false +deprecated: false +release: true + +group: Plasma +public_lib: true +public_source_dirs: + - src/interfaces diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/layer-shell-qt-5.24.5/src/CMakeLists.txt new/layer-shell-qt-5.25.0/src/CMakeLists.txt --- old/layer-shell-qt-5.24.5/src/CMakeLists.txt 2022-05-03 12:13:20.000000000 +0200 +++ new/layer-shell-qt-5.25.0/src/CMakeLists.txt 2022-06-09 11:11:37.000000000 +0200 @@ -3,8 +3,16 @@ remove_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS) -ecm_add_qtwayland_client_protocol(LAYER_SHELL_SOURCES PROTOCOL ${WaylandProtocols_DATADIR}/stable/xdg-shell/xdg-shell.xml BASENAME xdg-shell) -ecm_add_qtwayland_client_protocol(LAYER_SHELL_SOURCES PROTOCOL wlr-layer-shell-unstable-v1.xml BASENAME wlr-layer-shell-unstable-v1) +add_library(LayerShellQtInterface) +if (QT_MAJOR_VERSION EQUAL "5") + ecm_add_qtwayland_client_protocol(LAYER_SHELL_SOURCES PROTOCOL ${WaylandProtocols_DATADIR}/stable/xdg-shell/xdg-shell.xml BASENAME xdg-shell) + ecm_add_qtwayland_client_protocol(LAYER_SHELL_SOURCES PROTOCOL wlr-layer-shell-unstable-v1.xml BASENAME wlr-layer-shell-unstable-v1) +else() + qt6_generate_wayland_protocol_client_sources(LayerShellQtInterface FILES + ${WaylandProtocols_DATADIR}/stable/xdg-shell/xdg-shell.xml + ${CMAKE_CURRENT_SOURCE_DIR}/wlr-layer-shell-unstable-v1.xml + ) +endif() ecm_qt_declare_logging_category(LAYER_SHELL_SOURCES HEADER @@ -15,8 +23,11 @@ layershellqt ) -add_library(LayerShellQtInterface SHARED qwaylandlayersurface.cpp interfaces/window.cpp interfaces/shell.cpp qwaylandlayershellintegration.cpp qwaylandlayershell.cpp ${LAYER_SHELL_SOURCES}) -target_link_libraries(LayerShellQtInterface PRIVATE Qt::Gui Qt::WaylandClientPrivate Qt::XkbCommonSupportPrivate Wayland::Client PkgConfig::XKBCOMMON) +target_sources(LayerShellQtInterface PRIVATE qwaylandlayersurface.cpp interfaces/window.cpp interfaces/shell.cpp qwaylandlayershellintegration.cpp qwaylandlayershell.cpp ${LAYER_SHELL_SOURCES}) +target_link_libraries(LayerShellQtInterface PRIVATE Qt::Gui Qt::WaylandClientPrivate Wayland::Client PkgConfig::XKBCOMMON) +if (TARGET Qt::XkbCommonSupportPrivate) + target_link_libraries(LayerShellQtInterface PRIVATE Qt::XkbCommonSupportPrivate) +endif() target_include_directories(LayerShellQtInterface PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/LayerShellQt>" INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/>" ) @@ -27,7 +38,10 @@ ) add_library(layer-shell SHARED qwaylandlayershellintegrationplugin.cpp) -target_link_libraries(layer-shell LayerShellQtInterface Qt::WaylandClient Qt::WaylandClientPrivate Qt::XkbCommonSupportPrivate Wayland::Client PkgConfig::XKBCOMMON) +target_link_libraries(layer-shell LayerShellQtInterface Qt::WaylandClient Qt::WaylandClientPrivate Wayland::Client PkgConfig::XKBCOMMON) +if (TARGET Qt::XkbCommonSupportPrivate) + target_link_libraries(layer-shell Qt::XkbCommonSupportPrivate) +endif() ecm_generate_headers(LayerShellQt_HEADERS HEADER_NAMES @@ -45,7 +59,7 @@ ) install(TARGETS layer-shell - LIBRARY DESTINATION ${QT_PLUGIN_INSTALL_DIR}/wayland-shell-integration) + LIBRARY DESTINATION ${KDE_INSTALL_QTPLUGINDIR}/wayland-shell-integration) install(TARGETS LayerShellQtInterface EXPORT LayerShellQtTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/layer-shell-qt-5.24.5/src/interfaces/window.cpp new/layer-shell-qt-5.25.0/src/interfaces/window.cpp --- old/layer-shell-qt-5.24.5/src/interfaces/window.cpp 2022-05-03 12:13:20.000000000 +0200 +++ new/layer-shell-qt-5.25.0/src/interfaces/window.cpp 2022-06-09 11:11:37.000000000 +0200 @@ -28,6 +28,7 @@ Window::Layer layer = Window::LayerTop; QMargins margins; QWaylandLayerSurface *getSurface() const; + QPointer<QScreen> desiredOutput; }; static QMap<QWindow *, Window *> s_map; @@ -113,6 +114,16 @@ return d->layer; } +QScreen *Window::desiredOutput() const +{ + return d->desiredOutput; +} + +void Window::setDesiredOutput(QScreen *output) +{ + d->desiredOutput = output; +} + Window::Window(QWindow *window) : QObject(window) , d(new WindowPrivate(window)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/layer-shell-qt-5.24.5/src/interfaces/window.h new/layer-shell-qt-5.25.0/src/interfaces/window.h --- old/layer-shell-qt-5.24.5/src/interfaces/window.h 2022-05-03 12:13:20.000000000 +0200 +++ new/layer-shell-qt-5.25.0/src/interfaces/window.h 2022-06-09 11:11:37.000000000 +0200 @@ -9,6 +9,7 @@ #define LAYERSHELLQTWINDOW_H #include <QObject> +#include <QScreen> #include <QWindow> #include "layershellqt_export.h" @@ -24,10 +25,10 @@ ~Window() override; enum Anchor { - AnchorTop = 1, // the top edge of the anchor rectangle - AnchorBottom = 2, // the bottom edge of the anchor rectangle - AnchorLeft = 4, // the left edge of the anchor rectangle - AnchorRight = 8, // the right edge of the anchor rectangle + AnchorTop = 1, ///< The top edge of the anchor rectangle + AnchorBottom = 2, ///< The bottom edge of the anchor rectangle + AnchorLeft = 4, ///< The left edge of the anchor rectangle + AnchorRight = 8, ///< The right edge of the anchor rectangle }; Q_ENUM(Anchor); Q_DECLARE_FLAGS(Anchors, Anchor) @@ -69,6 +70,14 @@ Layer layer() const; /** + * If set, the compositor will try to put the window on the given screen. + * If its not set, then the compositor will decide where to put the window. + * Under normal circumstances, this should be the active output. + */ + void setDesiredOutput(QScreen *output); + QScreen *desiredOutput() const; + + /** * Sets a string based identifier for this window. * This may be used by a compositor to determine stacking * order within a given layer. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/layer-shell-qt-5.24.5/src/qwaylandlayershellintegration.cpp new/layer-shell-qt-5.25.0/src/qwaylandlayershellintegration.cpp --- old/layer-shell-qt-5.24.5/src/qwaylandlayershellintegration.cpp 2022-05-03 12:13:20.000000000 +0200 +++ new/layer-shell-qt-5.25.0/src/qwaylandlayershellintegration.cpp 2022-06-09 11:11:37.000000000 +0200 @@ -24,7 +24,9 @@ bool QWaylandLayerShellIntegration::initialize(QtWaylandClient::QWaylandDisplay *display) { +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QWaylandShellIntegration::initialize(display); +#endif display->addRegistryListener(registryLayer, this); return m_layerShell != nullptr; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/layer-shell-qt-5.24.5/src/qwaylandlayersurface.cpp new/layer-shell-qt-5.25.0/src/qwaylandlayersurface.cpp --- old/layer-shell-qt-5.24.5/src/qwaylandlayersurface.cpp 2022-05-03 12:13:20.000000000 +0200 +++ new/layer-shell-qt-5.25.0/src/qwaylandlayersurface.cpp 2022-06-09 11:11:37.000000000 +0200 @@ -6,9 +6,9 @@ */ #include "interfaces/shell.h" +#include "layershellqt_logging.h" #include "qwaylandlayershell_p.h" #include "qwaylandlayersurface_p.h" -#include "layershellqt_logging.h" #include <QtWaylandClient/private/qwaylandscreen_p.h> #include <QtWaylandClient/private/qwaylandsurface_p.h> @@ -23,14 +23,19 @@ LayerShellQt::Window *interface = Window::get(window->window()); Q_ASSERT(interface); - // 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 - QtWaylandClient::QWaylandScreen *screen = window->waylandScreen(); - if (screen->isPlaceholder()) { - qCWarning(LAYERSHELLQT) << "Creating a layer shell for placeholder screen. This will be positioned incorrectly"; + wl_output *output = nullptr; + QScreen *screen = interface->desiredOutput(); + if (screen) { + auto waylandScreen = dynamic_cast<QtWaylandClient::QWaylandScreen *>(screen->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) { + qCWarning(LAYERSHELLQT) << "Creating a layer shell for placeholder screen. This will be positioned incorrectly"; + } else { + output = waylandScreen->output(); + } } - - init(shell->get_layer_surface(window->waylandSurface()->object(), screen->isPlaceholder() ? nullptr : screen->output(), interface->layer(), interface->scope())); + init(shell->get_layer_surface(window->waylandSurface()->object(), output, interface->layer(), interface->scope())); Window::Anchors anchors = interface->anchors();