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 2023-03-19 16:16:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqt5-qtwayland (Old) and /work/SRC/openSUSE:Factory/.libqt5-qtwayland.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtwayland" Sun Mar 19 16:16:09 2023 rev:49 rq:1072582 version:5.15.8+kde63 Changes: -------- --- /work/SRC/openSUSE:Factory/libqt5-qtwayland/libqt5-qtwayland.changes 2023-01-11 14:33:48.772809800 +0100 +++ /work/SRC/openSUSE:Factory/.libqt5-qtwayland.new.31432/libqt5-qtwayland.changes 2023-03-19 16:16:27.763288344 +0100 @@ -1,0 +2,11 @@ +Thu Mar 16 08:17:47 UTC 2023 - Fabian Vogt <fv...@suse.com> + +- Update to version 5.15.8+kde63: + * Client: Remove flip popup constraints + * client: set_constraint_adjustment() for popups in xdg + * client: Do not cast placeholder screens to QWaylandScreen + * Client: Manage QMimeData lifecycle + * client: Force a roundtrip when an XdgOutput is not ready yet + * Client: Fix handling of Qt::BlankCursor + +------------------------------------------------------------------- Old: ---- qtwayland-everywhere-src-5.15.8+kde57.obscpio New: ---- qtwayland-everywhere-src-5.15.8+kde63.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqt5-qtwayland.spec ++++++ --- /var/tmp/diff_new_pack.unu6Ny/_old 2023-03-19 16:16:28.623292525 +0100 +++ /var/tmp/diff_new_pack.unu6Ny/_new 2023-03-19 16:16:28.631292564 +0100 @@ -26,7 +26,7 @@ %define so_version 5.15.8 %define tar_version qtwayland-everywhere-src-%{version} Name: libqt5-qtwayland -Version: 5.15.8+kde57 +Version: 5.15.8+kde63 Release: 0 Summary: Qt 5 Wayland Addon # The wayland compositor files are GPL-3.0-or-later ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.unu6Ny/_old 2023-03-19 16:16:28.687292837 +0100 +++ /var/tmp/diff_new_pack.unu6Ny/_new 2023-03-19 16:16:28.691292857 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://invent.kde.org/qt/qt/qtwayland.git</param> - <param name="changesrevision">f6a1e838e371dc90272c62daeea597fe487dec3e</param></service></servicedata> + <param name="changesrevision">df41e7e3e1f0e5495c5c8c52f1c9bb5a32b0da27</param></service></servicedata> (No newline at EOF) ++++++ qtwayland-everywhere-src-5.15.8+kde57.obscpio -> qtwayland-everywhere-src-5.15.8+kde63.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandclipboard.cpp new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandclipboard.cpp --- old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandclipboard.cpp 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandclipboard.cpp 2023-03-09 13:51:37.000000000 +0100 @@ -54,10 +54,15 @@ QWaylandClipboard::QWaylandClipboard(QWaylandDisplay *display) : mDisplay(display) { + m_clientClipboard[QClipboard::Clipboard] = nullptr; + m_clientClipboard[QClipboard::Selection] = nullptr; } QWaylandClipboard::~QWaylandClipboard() { + if (m_clientClipboard[QClipboard::Clipboard] != m_clientClipboard[QClipboard::Selection]) + delete m_clientClipboard[QClipboard::Clipboard]; + delete m_clientClipboard[QClipboard::Selection]; } QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode) @@ -69,8 +74,8 @@ switch (mode) { case QClipboard::Clipboard: if (auto *dataDevice = seat->dataDevice()) { - if (auto *source = dataDevice->selectionSource()) - return source->mimeData(); + if (dataDevice->selectionSource()) + return m_clientClipboard[QClipboard::Clipboard]; if (auto *offer = dataDevice->selectionOffer()) return offer->mimeData(); } @@ -78,8 +83,8 @@ case QClipboard::Selection: #if QT_CONFIG(wayland_client_primary_selection) if (auto *selectionDevice = seat->primarySelectionDevice()) { - if (auto *source = selectionDevice->selectionSource()) - return source->mimeData(); + if (selectionDevice->selectionSource()) + return m_clientClipboard[QClipboard::Selection]; if (auto *offer = selectionDevice->selectionOffer()) return offer->mimeData(); } @@ -104,17 +109,27 @@ if (data && data->hasFormat(plain) && !data->hasFormat(utf8)) data->setData(utf8, data->data(plain)); + if (m_clientClipboard[mode]) { + if (m_clientClipboard[QClipboard::Clipboard] != m_clientClipboard[QClipboard::Selection]) + delete m_clientClipboard[mode]; + m_clientClipboard[mode] = nullptr; + } + + m_clientClipboard[mode] = data; + switch (mode) { case QClipboard::Clipboard: if (auto *dataDevice = seat->dataDevice()) { - dataDevice->setSelectionSource(data ? new QWaylandDataSource(mDisplay->dndSelectionHandler(), data) : nullptr); + dataDevice->setSelectionSource(data ? new QWaylandDataSource(mDisplay->dndSelectionHandler(), + m_clientClipboard[QClipboard::Clipboard]) : nullptr); emitChanged(mode); } break; case QClipboard::Selection: #if QT_CONFIG(wayland_client_primary_selection) if (auto *selectionDevice = seat->primarySelectionDevice()) { - selectionDevice->setSelectionSource(data ? new QWaylandPrimarySelectionSourceV1(mDisplay->primarySelectionManager(), data) : nullptr); + selectionDevice->setSelectionSource(data ? new QWaylandPrimarySelectionSourceV1(mDisplay->primarySelectionManager(), + m_clientClipboard[QClipboard::Selection]) : nullptr); emitChanged(mode); } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandclipboard_p.h new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandclipboard_p.h --- old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandclipboard_p.h 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandclipboard_p.h 2023-03-09 13:51:37.000000000 +0100 @@ -80,6 +80,7 @@ private: QWaylandDisplay *mDisplay = nullptr; QMimeData m_emptyData; + QMimeData *m_clientClipboard[2]; }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylanddatasource.cpp new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylanddatasource.cpp --- old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylanddatasource.cpp 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylanddatasource.cpp 2023-03-09 13:51:37.000000000 +0100 @@ -71,11 +71,6 @@ destroy(); } -QMimeData * QWaylandDataSource::mimeData() const -{ - return m_mime_data; -} - void QWaylandDataSource::data_source_cancelled() { Q_EMIT cancelled(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylanddatasource_p.h new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylanddatasource_p.h --- old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylanddatasource_p.h 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylanddatasource_p.h 2023-03-09 13:51:37.000000000 +0100 @@ -74,8 +74,6 @@ QWaylandDataSource(QWaylandDataDeviceManager *dataDeviceManager, QMimeData *mimeData); ~QWaylandDataSource() override; - QMimeData *mimeData() const; - Q_SIGNALS: void cancelled(); void finished(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandinputdevice.cpp new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandinputdevice.cpp --- old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandinputdevice.cpp 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandinputdevice.cpp 2023-03-09 13:51:37.000000000 +0100 @@ -308,8 +308,7 @@ auto shape = seat()->mCursor.shape; if (shape == Qt::BlankCursor) { - if (mCursor.surface) - mCursor.surface->hide(); + getOrCreateCursorSurface()->hide(); return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandnativeinterface.cpp new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandnativeinterface.cpp --- old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandnativeinterface.cpp 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandnativeinterface.cpp 2023-03-09 13:51:37.000000000 +0100 @@ -139,7 +139,7 @@ { QByteArray lowerCaseResource = resourceString.toLower(); - if (lowerCaseResource == "output") + if (lowerCaseResource == "output" && !screen->handle()->isPlaceholder()) return ((QWaylandScreen *) screen->handle())->output(); return nullptr; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandwindow.cpp new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandwindow.cpp --- old/qtwayland-everywhere-src-5.15.8+kde57/src/client/qwaylandwindow.cpp 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/src/client/qwaylandwindow.cpp 2023-03-09 13:51:37.000000000 +0100 @@ -1042,6 +1042,8 @@ if (newScreen == mLastReportedScreen) return; + if (!newScreen->isPlaceholder() && !newScreen->QPlatformScreen::screen()) + mDisplay->forceRoundTrip(); QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen()); mLastReportedScreen = newScreen; if (fixedToplevelPositions && !QPlatformWindow::parent() && window()->type() != Qt::Popup diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp new/qtwayland-everywhere-src-5.15.8+kde63/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp --- old/qtwayland-everywhere-src-5.15.8+kde57/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp 2023-03-09 13:51:37.000000000 +0100 @@ -424,6 +424,8 @@ positioner->set_anchor(QtWayland::xdg_positioner::anchor_top_left); positioner->set_gravity(QtWayland::xdg_positioner::gravity_bottom_right); positioner->set_size(m_window->geometry().width(), m_window->geometry().height()); + positioner->set_constraint_adjustment(QtWayland::xdg_positioner::constraint_adjustment_slide_x + | QtWayland::xdg_positioner::constraint_adjustment_slide_y); m_popup = new Popup(this, parent, positioner); positioner->destroy(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/tests/auto/client/shared/coreprotocol.cpp new/qtwayland-everywhere-src-5.15.8+kde63/tests/auto/client/shared/coreprotocol.cpp --- old/qtwayland-everywhere-src-5.15.8+kde57/tests/auto/client/shared/coreprotocol.cpp 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/tests/auto/client/shared/coreprotocol.cpp 2023-03-09 13:51:37.000000000 +0100 @@ -185,6 +185,8 @@ if (m_version >= WL_OUTPUT_DONE_SINCE_VERSION) wl_output::send_done(resource->handle); + + Q_EMIT outputBound(resource); } // Seat stuff diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/tests/auto/client/shared/coreprotocol.h new/qtwayland-everywhere-src-5.15.8+kde63/tests/auto/client/shared/coreprotocol.h --- old/qtwayland-everywhere-src-5.15.8+kde57/tests/auto/client/shared/coreprotocol.h 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/tests/auto/client/shared/coreprotocol.h 2023-03-09 13:51:37.000000000 +0100 @@ -273,6 +273,9 @@ OutputData m_data; int m_version = 1; // TODO: remove on libwayland upgrade +Q_SIGNALS: + void outputBound(Resource *resource); + protected: void output_bind_resource(Resource *resource) override; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtwayland-everywhere-src-5.15.8+kde57/tests/auto/client/xdgoutput/tst_xdgoutput.cpp new/qtwayland-everywhere-src-5.15.8+kde63/tests/auto/client/xdgoutput/tst_xdgoutput.cpp --- old/qtwayland-everywhere-src-5.15.8+kde57/tests/auto/client/xdgoutput/tst_xdgoutput.cpp 2023-01-05 07:51:24.000000000 +0100 +++ new/qtwayland-everywhere-src-5.15.8+kde63/tests/auto/client/xdgoutput/tst_xdgoutput.cpp 2023-03-09 13:51:37.000000000 +0100 @@ -55,6 +55,7 @@ void primaryScreen(); void overrideGeometry(); void changeGeometry(); + void outputCreateEnterRace(); }; void tst_xdgoutput::cleanup() @@ -134,5 +135,39 @@ exec([=] { remove(output(1)); }); } +void tst_xdgoutput::outputCreateEnterRace() +{ + m_config.autoConfigure = true; + m_config.autoEnter = false; + QRasterWindow window; + QSignalSpy screenChanged(&window, &QWindow::screenChanged); + window.resize(400, 320); + window.show(); + QCOMPOSITOR_TRY_VERIFY(xdgSurface() && xdgSurface()->m_committedConfigureSerial); + exec([=] { xdgToplevel()->surface()->sendEnter(output(0));}); + + QTRY_COMPARE(QGuiApplication::screens().size(), 1); + QScreen *primaryScreen = QGuiApplication::screens().first(); + QCOMPARE(window.screen(), primaryScreen); + + auto *out = exec([=] { + return add<Output>(); + }); + + // In Compositor Thread + connect(out, &Output::outputBound, this, [this](QtWaylandServer::wl_output::Resource *resource){ + auto surface = xdgToplevel()->surface(); + surface->sendLeave(output(0)); + surface->QtWaylandServer::wl_surface::send_enter(surface->resource()->handle, resource->handle); + }, Qt::DirectConnection); + + QTRY_COMPARE(QGuiApplication::screens().size(), 2); + QTRY_COMPARE(window.screen(), QGuiApplication::screens()[1]); + + exec([=] { remove(out); }); + m_config.autoConfigure = false; + m_config.autoEnter = true; +} + QCOMPOSITOR_TEST_MAIN(tst_xdgoutput) #include "tst_xdgoutput.moc" ++++++ qtwayland-everywhere-src.obsinfo ++++++ --- /var/tmp/diff_new_pack.unu6Ny/_old 2023-03-19 16:16:29.247295559 +0100 +++ /var/tmp/diff_new_pack.unu6Ny/_new 2023-03-19 16:16:29.251295579 +0100 @@ -1,5 +1,5 @@ name: qtwayland-everywhere-src -version: 5.15.8+kde57 -mtime: 1672901484 -commit: f6a1e838e371dc90272c62daeea597fe487dec3e +version: 5.15.8+kde63 +mtime: 1678366297 +commit: df41e7e3e1f0e5495c5c8c52f1c9bb5a32b0da27