Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libqt5-qtwayland for openSUSE:Factory checked in at 2024-09-08 11:59:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqt5-qtwayland (Old) and /work/SRC/openSUSE:Factory/.libqt5-qtwayland.new.10096 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtwayland" Sun Sep 8 11:59:19 2024 rev:56 rq:1199213 version:5.15.15+kde59 Changes: -------- --- /work/SRC/openSUSE:Factory/libqt5-qtwayland/libqt5-qtwayland.changes 2024-05-30 15:33:40.682917649 +0200 +++ /work/SRC/openSUSE:Factory/.libqt5-qtwayland.new.10096/libqt5-qtwayland.changes 2024-09-08 12:00:23.667495335 +0200 @@ -1,0 +2,13 @@ +Wed Sep 4 20:09:50 UTC 2024 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to version 5.15.15+kde59, rebased upstream: + * Revert "Client: Send release button event on pointer leave" + * Fix race condition in drag and drop + * client: don't cache one type in QWaylandMimeData + * DefaultCompositor: use explcit lambda captures + * Fix C++20 deprecated capture of *this in [=] + * compositor: Unbind display on close in linux-dmabuf and eglstream + * Client: Send release button event on pointer leave + * Bump version to 5.15.15 + +------------------------------------------------------------------- Old: ---- qtwayland-everywhere-src-5.15.14+kde57.obscpio New: ---- qtwayland-everywhere-src-5.15.15+kde59.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqt5-qtwayland.spec ++++++ --- /var/tmp/diff_new_pack.WC29zB/_old 2024-09-08 12:00:24.327522660 +0200 +++ /var/tmp/diff_new_pack.WC29zB/_new 2024-09-08 12:00:24.327522660 +0200 @@ -22,11 +22,11 @@ %define qt5_snapshot 1 %define libname libQt5WaylandCompositor5 %define base_name libqt5 -%define real_version 5.15.14 -%define so_version 5.15.14 +%define real_version 5.15.15 +%define so_version 5.15.15 %define tar_version qtwayland-everywhere-src-%{version} Name: libqt5-qtwayland -Version: 5.15.14+kde57 +Version: 5.15.15+kde59 Release: 0 Summary: Qt 5 Wayland Addon # The wayland compositor files are GPL-3.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.WC29zB/_old 2024-09-08 12:00:24.363524150 +0200 +++ /var/tmp/diff_new_pack.WC29zB/_new 2024-09-08 12:00:24.363524150 +0200 @@ -1,12 +1,12 @@ <services> <service name="obs_scm" mode="disabled"> <param name="changesgenerate">enable</param> - <param name="versionformat">5.15.14+kde@TAG_OFFSET@</param> + <param name="versionformat">5.15.15+kde@TAG_OFFSET@</param> <param name="url">https://invent.kde.org/qt/qt/qtwayland.git</param> <param name="scm">git</param> <param name="filename">qtwayland-everywhere-src</param> <param name="revision">kde/5.15</param> - <param name="parent-tag">v5.15.14-lts-lgpl</param> + <param name="parent-tag">v5.15.15-lts-lgpl</param> <param name="changesgenerate">enable</param> </service> <service name="set_version" mode="disabled"/> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.WC29zB/_old 2024-09-08 12:00:24.387525144 +0200 +++ /var/tmp/diff_new_pack.WC29zB/_new 2024-09-08 12:00:24.391525309 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://invent.kde.org/qt/qt/qtwayland.git</param> - <param name="changesrevision">75f434f14499eb47ede2cb66f0946527bf555791</param></service></servicedata> + <param name="changesrevision">6b1ba1cd0e1389d13e59b94e65da8f20a89ba03f</param></service></servicedata> (No newline at EOF) ++++++ qtwayland-everywhere-src-5.15.14+kde57.obscpio -> qtwayland-everywhere-src-5.15.15+kde59.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/.qmake.conf new/qtwayland-everywhere-src-5.15.15+kde59/.qmake.conf --- old/qtwayland-everywhere-src-5.15.14+kde57/.qmake.conf 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/.qmake.conf 2024-08-31 00:27:39.000000000 +0200 @@ -4,4 +4,4 @@ DEFINES += QT_NO_JAVA_STYLE_ITERATORS DEFINES += QT_NO_LINKED_LIST -MODULE_VERSION = 5.15.14 +MODULE_VERSION = 5.15.15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/src/client/qwaylanddataoffer.cpp new/qtwayland-everywhere-src-5.15.15+kde59/src/client/qwaylanddataoffer.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/src/client/qwaylanddataoffer.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/src/client/qwaylanddataoffer.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -56,6 +56,11 @@ return QStringLiteral("text/plain;charset=utf-8"); } +static QString portalFileTransfer() +{ + return QStringLiteral("application/vnd.portal.filetransfer"); +} + QWaylandDataOffer::QWaylandDataOffer(QWaylandDisplay *display, struct ::wl_data_offer *offer) : QtWayland::wl_data_offer(offer) , m_display(display) @@ -182,7 +187,9 @@ } close(pipefd[0]); - m_data.insert(mimeType, content); + if (mimeType != portalFileTransfer()) + m_data.insert(mimeType, content); + return content; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/src/compositor/wayland_wrapper/qwldatadevice.cpp new/qtwayland-everywhere-src-5.15.15+kde59/src/compositor/wayland_wrapper/qwldatadevice.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/src/compositor/wayland_wrapper/qwldatadevice.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/src/compositor/wayland_wrapper/qwldatadevice.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -76,6 +76,9 @@ { if (m_selectionSource == source) m_selectionSource = nullptr; + + if (m_dragDataSource == source) + m_dragDataSource = nullptr; } #if QT_CONFIG(draganddrop) @@ -105,9 +108,11 @@ if (m_dragDataSource && !offer) return; - send_enter(resource->handle, serial, focus->resource(), - wl_fixed_from_double(localPosition.x()), wl_fixed_from_double(localPosition.y()), - offer->resource()->handle); + if (offer) { + send_enter(resource->handle, serial, focus->resource(), + wl_fixed_from_double(localPosition.x()), wl_fixed_from_double(localPosition.y()), + offer->resource()->handle); + } m_dragFocus = focus; m_dragFocusResource = resource; @@ -139,7 +144,7 @@ if (m_dragFocusResource) { send_drop(m_dragFocusResource->handle); setDragFocus(nullptr, QPoint()); - } else { + } else if (m_dragDataSource) { m_dragDataSource->cancel(); } m_dragOrigin = nullptr; @@ -155,6 +160,8 @@ { m_dragClient = resource->client(); m_dragDataSource = source ? DataSource::fromResource(source) : nullptr; + if (m_dragDataSource) + m_dragDataSource->setDevice(this); m_dragOrigin = QWaylandSurface::fromResource(origin); QWaylandDrag *drag = m_seat->drag(); setDragIcon(icon ? QWaylandSurface::fromResource(icon) : nullptr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.cpp new/qtwayland-everywhere-src-5.15.15+kde59/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -266,6 +266,12 @@ LinuxDmabufClientBufferIntegration::~LinuxDmabufClientBufferIntegration() { m_importedBuffers.clear(); + + if (egl_unbind_wayland_display != nullptr && m_displayBound) { + Q_ASSERT(m_wlDisplay != nullptr); + if (!egl_unbind_wayland_display(m_eglDisplay, m_wlDisplay)) + qCWarning(qLcWaylandCompositorHardwareIntegration) << "eglUnbindWaylandDisplayWL failed"; + } } void LinuxDmabufClientBufferIntegration::initializeHardware(struct ::wl_display *display) @@ -327,6 +333,7 @@ return; } } + m_wlDisplay = display; } // request and sent formats/modifiers only after egl_display is bound diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.h new/qtwayland-everywhere-src-5.15.15+kde59/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.h --- old/qtwayland-everywhere-src-5.15.14+kde57/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.h 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.h 2024-08-31 00:27:39.000000000 +0200 @@ -92,6 +92,7 @@ QVector<uint64_t> supportedDrmModifiers(uint32_t format); EGLDisplay m_eglDisplay = EGL_NO_DISPLAY; + ::wl_display *m_wlDisplay = nullptr; bool m_displayBound = false; QVector<QOpenGLTexture *> m_orphanedTextures; QHash<EGLint, YuvFormatConversion> m_yuvFormats; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/src/hardwareintegration/compositor/wayland-eglstream-controller/waylandeglstreamintegration.cpp new/qtwayland-everywhere-src-5.15.15+kde59/src/hardwareintegration/compositor/wayland-eglstream-controller/waylandeglstreamintegration.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/src/hardwareintegration/compositor/wayland-eglstream-controller/waylandeglstreamintegration.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/src/hardwareintegration/compositor/wayland-eglstream-controller/waylandeglstreamintegration.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -155,6 +155,7 @@ EGLDisplay egl_display = EGL_NO_DISPLAY; bool display_bound = false; + ::wl_display *wlDisplay = nullptr; QOffscreenSurface *offscreenSurface = nullptr; QOpenGLContext *localContext = nullptr; QVector<QOpenGLTexture *> orphanedTextures; @@ -282,7 +283,13 @@ WaylandEglStreamClientBufferIntegration::~WaylandEglStreamClientBufferIntegration() { + Q_D(WaylandEglStreamClientBufferIntegration); WaylandEglStreamClientBufferIntegrationPrivate::shuttingDown = true; + if (d->egl_unbind_wayland_display != nullptr && d->display_bound) { + Q_ASSERT(d->wlDisplay != nullptr); + if (!d->egl_unbind_wayland_display(d->egl_display, d->wlDisplay)) + qCWarning(qLcWaylandCompositorHardwareIntegration) << "eglUnbindWaylandDisplayWL failed"; + } } void WaylandEglStreamClientBufferIntegration::attachEglStreamConsumer(struct ::wl_resource *wl_surface, struct ::wl_resource *wl_buffer) @@ -345,6 +352,7 @@ qWarning("QtCompositor: Could not bind Wayland display. Ignoring."); } } + d->wlDisplay = display; } d->eglStreamController = new WaylandEglStreamController(display, this); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/output/tst_output.cpp new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/output/tst_output.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/output/tst_output.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/output/tst_output.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -73,7 +73,7 @@ void tst_output::secondaryHiDpiScreen() { - exec([=] { + exec([&] { OutputData d; d.position = {1920, 0}; // in global compositor space (not pixels) d.mode.resolution = {800, 640}; @@ -99,15 +99,15 @@ QCOMPARE(screen->geometry(), QRect(QPoint(1920, 0), QSize(400, 320))); QCOMPARE(screen->virtualGeometry(), QRect(QPoint(0, 0), QSize(1920 + 800 / 2, 1080))); - exec([=] { remove(output(1)); }); + exec([&] { remove(output(1)); }); } // QTBUG-62044 void tst_output::addScreenWithGeometryChange() { - const QPoint initialPosition = exec([=] { return output(0)->m_data.position; }); + const QPoint initialPosition = exec([&] { return output(0)->m_data.position; }); - exec([=] { + exec([&] { auto *oldOutput = output(0); auto *newOutput = add<Output>(); newOutput->m_data.mode.resolution = {1280, 720}; @@ -123,7 +123,7 @@ QTRY_COMPARE(QGuiApplication::primaryScreen()->geometry(), QRect(QPoint(1280, 0), QSize(1920, 1080))); // Remove the extra output and move the old one back - exec([=] { + exec([&] { remove(output(1)); output()->m_data.position = initialPosition; output()->sendGeometry(); @@ -144,7 +144,7 @@ QScreen *primaryScreen = QGuiApplication::screens().first(); QCOMPARE(window.screen(), primaryScreen); - exec([=] { add<Output>(); }); + exec([&] { add<Output>(); }); QTRY_COMPARE(QGuiApplication::screens().size(), 2); QScreen *secondaryScreen = QGuiApplication::screens().at(1); @@ -153,19 +153,19 @@ window.setScreen(secondaryScreen); QCOMPARE(window.screen(), secondaryScreen); - exec([=] { + exec([&] { xdgToplevel()->surface()->sendEnter(output(0)); xdgToplevel()->surface()->sendEnter(output(1)); }); QTRY_COMPARE(window.screen(), primaryScreen); - exec([=] { + exec([&] { xdgToplevel()->surface()->sendLeave(output(0)); }); QTRY_COMPARE(window.screen(), secondaryScreen); - exec([=] { + exec([&] { remove(output(1)); }); QTRY_COMPARE(QGuiApplication::screens().size(), 1); @@ -211,7 +211,7 @@ // QTBUG-72828 void tst_output::screenOrder() { - exec([=] { + exec([&] { add<Output>()->m_data.model = "Screen 1"; add<Output>()->m_data.model = "Screen 2"; }); @@ -222,7 +222,7 @@ QCOMPARE(screens[1]->model(), "Screen 1"); QCOMPARE(screens[2]->model(), "Screen 2"); - exec([=] { + exec([&] { remove(output(2)); remove(output(1)); }); @@ -240,8 +240,8 @@ const QString wlOutputPrimaryScreenModel = QGuiApplication::primaryScreen()->model(); // Get screen info so we can restore it after - auto screenInfo = exec([=] { return output()->m_data; }); - exec([=] { remove(output()); }); + auto screenInfo = exec([&] { return output()->m_data; }); + exec([&] { remove(output()); }); // Make sure the wl_output is actually removed before we continue QTRY_VERIFY(!QGuiApplication::primaryScreen() || QGuiApplication::primaryScreen()->model() != wlOutputPrimaryScreenModel); @@ -251,7 +251,7 @@ window2.resize(400, 320); window2.show(); - exec([=] { add<Output>(screenInfo); }); + exec([&] { add<Output>(screenInfo); }); // Things should be back to normal QTRY_VERIFY(QGuiApplication::primaryScreen()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/primaryselectionv1/tst_primaryselectionv1.cpp new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/primaryselectionv1/tst_primaryselectionv1.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/primaryselectionv1/tst_primaryselectionv1.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/primaryselectionv1/tst_primaryselectionv1.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -290,7 +290,7 @@ void tst_primaryselectionv1::createsPrimaryDeviceForNewSeats() { - exec([=] { add<Seat>(); }); + exec([&] { add<Seat>(); }); QCOMPOSITOR_TRY_VERIFY(primarySelectionDevice(1)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/shared/mockcompositor.cpp new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/shared/mockcompositor.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/shared/mockcompositor.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/shared/mockcompositor.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -46,8 +46,8 @@ add<Shm>(); // TODO: other shells, viewporter, xdgoutput etc - QObject::connect(get<WlCompositor>(), &WlCompositor::surfaceCreated, [&] (Surface *surface){ - QObject::connect(surface, &Surface::bufferCommitted, [=] { + QObject::connect(get<WlCompositor>(), &WlCompositor::surfaceCreated, [this] (Surface *surface){ + QObject::connect(surface, &Surface::bufferCommitted, [this, surface] { if (m_config.autoRelease) { // Pretend we made a copy of the buffer and just release it immediately surface->m_committed.buffer->send_release(); @@ -58,7 +58,7 @@ }); }); - QObject::connect(get<XdgWmBase>(), &XdgWmBase::toplevelCreated, get<XdgWmBase>(), [&] (XdgToplevel *toplevel) { + QObject::connect(get<XdgWmBase>(), &XdgWmBase::toplevelCreated, get<XdgWmBase>(), [this] (XdgToplevel *toplevel) { if (m_config.autoConfigure) toplevel->sendCompleteConfigure(); }, Qt::DirectConnection); @@ -79,8 +79,8 @@ void DefaultCompositor::xdgPingAndWaitForPong() { - QSignalSpy pongSpy(exec([=] { return get<XdgWmBase>(); }), &XdgWmBase::pong); - uint serial = exec([=] { return sendXdgShellPing(); }); + QSignalSpy pongSpy(exec([&] { return get<XdgWmBase>(); }), &XdgWmBase::pong); + uint serial = exec([&] { return sendXdgShellPing(); }); QTRY_COMPARE(pongSpy.count(), 1); QTRY_COMPARE(pongSpy.first().at(0).toUInt(), serial); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/surface/tst_surface.cpp new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/surface/tst_surface.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/surface/tst_surface.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/surface/tst_surface.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -77,8 +77,8 @@ TestWindow window; window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - QSignalSpy bufferSpy(exec([=] { return xdgSurface()->m_surface; }), &Surface::bufferCommitted); - exec([=] { xdgToplevel()->sendCompleteConfigure(); }); + QSignalSpy bufferSpy(exec([&] { return xdgSurface()->m_surface; }), &Surface::bufferCommitted); + exec([&] { xdgToplevel()->sendCompleteConfigure(); }); // We should get the first buffer without waiting for a frame callback QTRY_COMPARE(bufferSpy.count(), 1); @@ -119,8 +119,8 @@ TestWindow window; window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - QSignalSpy bufferSpy(exec([=] { return xdgSurface()->m_surface; }), &Surface::bufferCommitted); - exec([=] { xdgToplevel()->sendCompleteConfigure(); }); + QSignalSpy bufferSpy(exec([&] { return xdgSurface()->m_surface; }), &Surface::bufferCommitted); + exec([&] { xdgToplevel()->sendCompleteConfigure(); }); // We should get the first buffer without waiting for a frame callback QTRY_COMPARE(bufferSpy.count(), 1); @@ -155,8 +155,8 @@ window.resize(64, 48); window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - QSignalSpy bufferSpy(exec([=] { return xdgSurface()->m_surface; }), &Surface::bufferCommitted); - const uint serial = exec([=] { return xdgToplevel()->sendCompleteConfigure(); }); + QSignalSpy bufferSpy(exec([&] { return xdgSurface()->m_surface; }), &Surface::bufferCommitted); + const uint serial = exec([&] { return xdgToplevel()->sendCompleteConfigure(); }); QCOMPOSITOR_TRY_COMPARE(xdgSurface()->m_committedConfigureSerial, serial); exec([&] { Buffer *buffer = xdgToplevel()->surface()->m_committed.buffer; @@ -184,11 +184,11 @@ QCOMPOSITOR_TRY_VERIFY(subSurface()); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - exec([=] { xdgToplevel()->sendCompleteConfigure(); }); + exec([&] { xdgToplevel()->sendCompleteConfigure(); }); QCOMPOSITOR_TRY_VERIFY(xdgSurface()->m_committedConfigureSerial); - const Surface *mainSurface = exec([=] {return surface(0);}); - const Surface *childSurface = exec([=] {return surface(1);}); + const Surface *mainSurface = exec([&] {return surface(0);}); + const Surface *childSurface = exec([&] {return surface(1);}); QSignalSpy mainSurfaceCommitSpy(mainSurface, &Surface::commit); QSignalSpy childSurfaceCommitSpy(childSurface, &Surface::commit); @@ -214,7 +214,7 @@ window.resize(64, 64); window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - exec([=] { xdgToplevel()->sendCompleteConfigure(); }); + exec([&] { xdgToplevel()->sendCompleteConfigure(); }); QCOMPOSITOR_TRY_VERIFY(xdgSurface()->m_committedConfigureSerial); window.hide(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/xdgdecorationv1/tst_xdgdecorationv1.cpp new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/xdgdecorationv1/tst_xdgdecorationv1.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/xdgdecorationv1/tst_xdgdecorationv1.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/xdgdecorationv1/tst_xdgdecorationv1.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -177,7 +177,7 @@ QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); QCOMPOSITOR_TRY_VERIFY(toplevelDecoration()->m_unsetModeRequested); QVERIFY(window.frameMargins().isNull()); // We're still waiting for a configure - exec([=] { + exec([&] { toplevelDecoration()->sendConfigure(XdgToplevelDecorationV1::mode_client_side); xdgToplevel()->sendCompleteConfigure(); }); @@ -191,7 +191,7 @@ window.show(); QCOMPOSITOR_TRY_COMPARE(get<XdgDecorationManagerV1>()->resourceMap().size(), 1); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - exec([=]{ + exec([&]{ xdgToplevel()->sendCompleteConfigure(); }); QCOMPOSITOR_TRY_VERIFY(xdgSurface()->m_committedConfigureSerial); @@ -207,7 +207,7 @@ window.show(); QCOMPOSITOR_TRY_COMPARE(get<XdgDecorationManagerV1>()->resourceMap().size(), 1); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - exec([=]{ + exec([&]{ xdgToplevel()->sendCompleteConfigure(); }); QCOMPOSITOR_TRY_VERIFY(xdgSurface()->m_committedConfigureSerial); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/xdgoutput/tst_xdgoutput.cpp new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/xdgoutput/tst_xdgoutput.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/xdgoutput/tst_xdgoutput.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/xdgoutput/tst_xdgoutput.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -69,7 +69,7 @@ { // Verify that the client has bound to the global QCOMPOSITOR_TRY_COMPARE(get<XdgOutputManagerV1>()->resourceMap().size(), 1); - exec([=] { + exec([&] { auto *resource = xdgOutput()->resourceMap().value(client()); QCOMPARE(resource->version(), 3); QCOMPARE(xdgOutput()->m_logicalGeometry.size(), QSize(1920, 1080)); @@ -82,7 +82,7 @@ void tst_xdgoutput::overrideGeometry() { - exec([=] { + exec([&] { auto *output = add<Output>(); auto *xdgOutput = get<XdgOutputManagerV1>()->getXdgOutput(output); xdgOutput->m_logicalGeometry = QRect(10, 20, 800, 1200); @@ -94,12 +94,12 @@ QTRY_COMPARE(s->size(), QSize(800, 1200)); QTRY_COMPARE(s->geometry().topLeft(), QPoint(10, 20)); - exec([=] { remove(output(1)); }); + exec([&] { remove(output(1)); }); } void tst_xdgoutput::changeGeometry() { - auto *xdgOutput = exec([=] { + auto *xdgOutput = exec([&] { auto *output = add<Output>(); auto *xdgOutput = get<XdgOutputManagerV1>()->getXdgOutput(output); xdgOutput->m_logicalGeometry = QRect(10, 20, 800, 1200); @@ -110,7 +110,7 @@ auto *screen = QGuiApplication::screens()[1]; QTRY_COMPARE(screen->size(), QSize(800, 1200)); - exec([=] { + exec([&] { xdgOutput->sendLogicalSize(QSize(1024, 768)); }); @@ -118,21 +118,21 @@ // done event. If we TRY_COMPARE immediately, we risk that the client just hasn't handled the // logical_size request yet, so we add a screen and verify it on the client side just to give // the client a chance to mess up. - exec([=] { add<Output>(); }); + exec([&] { add<Output>(); }); QTRY_COMPARE(QGuiApplication::screens().size(), 3); - exec([=] { remove(output(2)); }); + exec([&] { remove(output(2)); }); // The logical_size event should have been handled by now, but state should not have been applied yet. QTRY_COMPARE(screen->size(), QSize(800, 1200)); - exec([=] { + exec([&] { xdgOutput->m_output->sendDone(); }); // Finally, the size should change QTRY_COMPARE(screen->size(), QSize(1024, 768)); - exec([=] { remove(output(1)); }); + exec([&] { remove(output(1)); }); } void tst_xdgoutput::outputCreateEnterRace() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/xdgshell/tst_xdgshell.cpp new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/xdgshell/tst_xdgshell.cpp --- old/qtwayland-everywhere-src-5.15.14+kde57/tests/auto/client/xdgshell/tst_xdgshell.cpp 2024-05-28 00:04:11.000000000 +0200 +++ new/qtwayland-everywhere-src-5.15.15+kde59/tests/auto/client/xdgshell/tst_xdgshell.cpp 2024-08-31 00:27:39.000000000 +0200 @@ -79,13 +79,13 @@ window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - QSignalSpy configureSpy(exec([=] { return xdgSurface(); }), &XdgSurface::configureCommitted); + QSignalSpy configureSpy(exec([&] { return xdgSurface(); }), &XdgSurface::configureCommitted); QTRY_VERIFY(window.isVisible()); // The window should not be exposed before the first xdg_surface configure event QTRY_VERIFY(!window.isExposed()); - exec([=] { + exec([&] { xdgToplevel()->sendConfigure({0, 0}, {}); // Let the window decide the size }); @@ -93,9 +93,9 @@ QTRY_VERIFY(!window.isExposed()); //Window should not be exposed before the first configure event QVERIFY(configureSpy.isEmpty()); - const uint serial = exec([=] { return nextSerial(); }); + const uint serial = exec([&] { return nextSerial(); }); - exec([=] { + exec([&] { xdgSurface()->sendConfigure(serial); }); @@ -121,17 +121,17 @@ window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - QSignalSpy configureSpy(exec([=] { return xdgSurface(); }), &XdgSurface::configureCommitted); + QSignalSpy configureSpy(exec([&] { return xdgSurface(); }), &XdgSurface::configureCommitted); const QSize configureSize(60, 40); - exec([=] { + exec([&] { xdgToplevel()->sendCompleteConfigure(configureSize); }); QTRY_COMPARE(configureSpy.count(), 1); - exec([=] { + exec([&] { Buffer *buffer = xdgToplevel()->surface()->m_committed.buffer; QVERIFY(buffer); QCOMPARE(buffer->size(), configureSize); @@ -147,7 +147,7 @@ QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); const QSize windowedSize(320, 240); - const uint windowedSerial = exec([=] { + const uint windowedSerial = exec([&] { return xdgToplevel()->sendCompleteConfigure(windowedSize, { XdgToplevel::state_activated }); }); QCOMPOSITOR_TRY_COMPARE(xdgSurface()->m_committedConfigureSerial, windowedSerial); @@ -165,7 +165,7 @@ Qt::WindowActive)); // Just make sure it eventually get's set correctly const QSize screenSize(640, 480); - const uint maximizedSerial = exec([=] { + const uint maximizedSerial = exec([&] { return xdgToplevel()->sendCompleteConfigure(screenSize, { XdgToplevel::state_activated, XdgToplevel::state_maximized }); }); QCOMPOSITOR_TRY_COMPARE(xdgSurface()->m_committedConfigureSerial, maximizedSerial); @@ -174,7 +174,7 @@ QCOMPARE(window.frameGeometry().size(), screenSize); // QCOMPARE(window.frameGeometry().topLeft(), QPoint()); // TODO: this doesn't currently work when window decorations are enabled - const uint fullscreenSerial = exec([=] { + const uint fullscreenSerial = exec([&] { return xdgToplevel()->sendCompleteConfigure(screenSize, { XdgToplevel::state_activated, XdgToplevel::state_fullscreen }); }); QCOMPOSITOR_TRY_COMPARE(xdgSurface()->m_committedConfigureSerial, fullscreenSerial); @@ -184,7 +184,7 @@ // QCOMPARE(window.frameGeometry().topLeft(), QPoint()); // TODO: this doesn't currently work when window decorations are enabled // The window should remember its original size - const uint restoreSerial = exec([=] { + const uint restoreSerial = exec([&] { return xdgToplevel()->sendCompleteConfigure({0, 0}, { XdgToplevel::state_activated }); }); QCOMPOSITOR_TRY_COMPARE(xdgSurface()->m_committedConfigureSerial, restoreSerial); @@ -215,11 +215,11 @@ window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - QSignalSpy toplevelConfigureSpy(exec([=] { return xdgSurface(); }), &XdgSurface::configureCommitted); - exec([=] { xdgToplevel()->sendCompleteConfigure(); }); + QSignalSpy toplevelConfigureSpy(exec([&] { return xdgSurface(); }), &XdgSurface::configureCommitted); + exec([&] { xdgToplevel()->sendCompleteConfigure(); }); QTRY_COMPARE(toplevelConfigureSpy.count(), 1); - uint clickSerial = exec([=] { + uint clickSerial = exec([&] { auto *surface = xdgToplevel()->surface(); auto *p = pointer(); auto *c = client(); @@ -233,7 +233,7 @@ QTRY_VERIFY(window.m_popup); QCOMPOSITOR_TRY_VERIFY(xdgPopup()); - QSignalSpy popupConfigureSpy(exec([=] { return xdgPopup()->m_xdgSurface; }), &XdgSurface::configureCommitted); + QSignalSpy popupConfigureSpy(exec([&] { return xdgPopup()->m_xdgSurface; }), &XdgSurface::configureCommitted); QCOMPOSITOR_TRY_VERIFY(xdgPopup()->m_grabbed); QCOMPOSITOR_TRY_COMPARE(xdgPopup()->m_grabSerial, clickSerial); @@ -241,13 +241,13 @@ QVERIFY(!popup->isExposed()); // wait for configure //TODO: Verify it works with a different configure window geometry - exec([=] { xdgPopup()->sendConfigure(QRect(100, 100, 100, 100)); }); + exec([&] { xdgPopup()->sendConfigure(QRect(100, 100, 100, 100)); }); // Nothing should happen before the *xdg_surface* configure QTRY_VERIFY(!popup->isExposed()); // Popup shouldn't be exposed before the first configure event QVERIFY(popupConfigureSpy.isEmpty()); - const uint configureSerial = exec([=] { + const uint configureSerial = exec([&] { return xdgPopup()->m_xdgSurface->sendConfigure(); }); @@ -301,10 +301,10 @@ window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - exec([=] { xdgToplevel()->sendCompleteConfigure(); }); + exec([&] { xdgToplevel()->sendCompleteConfigure(); }); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()->m_xdgSurface->m_committedConfigureSerial); - exec([=] { + exec([&] { auto *surface = xdgToplevel()->surface(); auto *p = pointer(); auto *c = client(); @@ -318,11 +318,11 @@ }); QCOMPOSITOR_TRY_VERIFY(xdgPopup()); - exec([=] { xdgPopup()->sendCompleteConfigure(QRect(100, 100, 100, 100)); }); + exec([&] { xdgPopup()->sendCompleteConfigure(QRect(100, 100, 100, 100)); }); QCOMPOSITOR_TRY_VERIFY(xdgPopup()->m_xdgSurface->m_committedConfigureSerial); QCOMPOSITOR_TRY_VERIFY(xdgPopup()->m_grabbed); - exec([=] { + exec([&] { auto *surface = xdgPopup()->surface(); auto *p = pointer(); auto *c = client(); @@ -334,7 +334,7 @@ }); QCOMPOSITOR_TRY_VERIFY(xdgPopup(1)); - exec([=] { xdgPopup(1)->sendCompleteConfigure(QRect(100, 100, 100, 100)); }); + exec([&] { xdgPopup(1)->sendCompleteConfigure(QRect(100, 100, 100, 100)); }); QCOMPOSITOR_TRY_VERIFY(xdgPopup(1)->m_xdgSurface->m_committedConfigureSerial); QCOMPOSITOR_TRY_VERIFY(!xdgPopup(1)->m_grabbed); @@ -471,10 +471,10 @@ window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - exec([=] { xdgToplevel()->sendCompleteConfigure(); }); + exec([&] { xdgToplevel()->sendCompleteConfigure(); }); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()->m_xdgSurface->m_committedConfigureSerial); - exec([=] { + exec([&] { auto *surface = xdgToplevel()->surface(); auto *p = pointer(); auto *c = client(); @@ -488,13 +488,13 @@ }); QCOMPOSITOR_TRY_VERIFY(xdgPopup()); - exec([=] { xdgPopup()->sendCompleteConfigure(QRect(100, 100, 100, 100)); }); + exec([&] { xdgPopup()->sendCompleteConfigure(QRect(100, 100, 100, 100)); }); QCOMPOSITOR_TRY_VERIFY(xdgPopup()->m_xdgSurface->m_committedConfigureSerial); QCOMPOSITOR_TRY_VERIFY(xdgPopup()->m_grabbed); - QSignalSpy firstDestroyed(exec([=] { return xdgPopup(); }), &XdgPopup::destroyRequested); + QSignalSpy firstDestroyed(exec([&] { return xdgPopup(); }), &XdgPopup::destroyRequested); - exec([=] { + exec([&] { auto *surface = xdgToplevel()->surface(); auto *p = pointer(); auto *c = client(); @@ -519,7 +519,7 @@ QCOMPOSITOR_TRY_VERIFY(xdgPopup()->m_parentXdgSurface == xdgToplevel()->m_xdgSurface); // For good measure just check that configuring works as usual - exec([=] { xdgPopup()->sendCompleteConfigure(QRect(100, 100, 100, 100)); }); + exec([&] { xdgPopup()->sendCompleteConfigure(QRect(100, 100, 100, 100)); }); QCOMPOSITOR_TRY_VERIFY(xdgPopup()->m_xdgSurface->m_committedConfigureSerial); } @@ -543,10 +543,10 @@ window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - exec([=] { xdgToplevel()->sendCompleteConfigure(); }); + exec([&] { xdgToplevel()->sendCompleteConfigure(); }); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()->m_xdgSurface->m_committedConfigureSerial); - exec([=] { + exec([&] { auto *surface = xdgToplevel()->surface(); auto *p = pointer(); auto *c = client(); @@ -557,7 +557,7 @@ p->sendFrame(c); }); QCOMPOSITOR_TRY_VERIFY(xdgPopup()); - exec([=] { + exec([&] { xdgPopup()->sendConfigure(QRect(100, 100, 100, 100)); xdgPopup()->m_xdgSurface->sendConfigure(); }); @@ -578,9 +578,9 @@ // Verify that the client has bound to the global QCOMPOSITOR_TRY_COMPARE(get<XdgWmBase>()->resourceMap().size(), 1); - QSignalSpy pongSpy(exec([=] { return get<XdgWmBase>(); }), &XdgWmBase::pong); - const uint serial = exec([=] { return nextSerial(); }); - exec([=] { + QSignalSpy pongSpy(exec([&] { return get<XdgWmBase>(); }), &XdgWmBase::pong); + const uint serial = exec([&] { return nextSerial(); }); + exec([&] { auto *base = get<XdgWmBase>(); wl_resource *resource = base->resourceMap().first()->handle; base->send_ping(resource, serial); @@ -619,7 +619,7 @@ window.show(); QCOMPOSITOR_TRY_VERIFY(xdgToplevel()); - exec([=] { xdgToplevel()->sendCompleteConfigure(); }); + exec([&] { xdgToplevel()->sendCompleteConfigure(); }); QSize marginsSize; marginsSize.setWidth(window.frameMargins().left() + window.frameMargins().right()); @@ -651,7 +651,7 @@ // Just do something to make sure we don't destroy the surface before // the pointer events above are handled. - QSignalSpy spy(exec([=] { return surface(newSurfaceIndex); }), &Surface::commit); + QSignalSpy spy(exec([&] { return surface(newSurfaceIndex); }), &Surface::commit); wl_surface_commit(foreignSurface); QTRY_COMPARE(spy.count(), 1); ++++++ qtwayland-everywhere-src.obsinfo ++++++ --- /var/tmp/diff_new_pack.WC29zB/_old 2024-09-08 12:00:24.843544022 +0200 +++ /var/tmp/diff_new_pack.WC29zB/_new 2024-09-08 12:00:24.847544188 +0200 @@ -1,5 +1,5 @@ name: qtwayland-everywhere-src -version: 5.15.14+kde57 -mtime: 1716847451 -commit: 75f434f14499eb47ede2cb66f0946527bf555791 +version: 5.15.15+kde59 +mtime: 1725056859 +commit: 6b1ba1cd0e1389d13e59b94e65da8f20a89ba03f