Merge pull request #16174 from Rmys/master

qt5-5.15.16
This commit is contained in:
Rmys
2025-02-23 16:25:20 +03:00
committed by GitHub
+151 -265
View File
@@ -1,18 +1,8 @@
diff --git a/src/client/configure.json b/src/client/configure.json diff --git a/src/client/configure.json b/src/client/configure.json
index 2f424580..29222357 100644 index 73f233622..6247f85e6 100644
--- a/src/client/configure.json --- a/src/client/configure.json
+++ b/src/client/configure.json +++ b/src/client/configure.json
@@ -149,8 +149,7 @@ @@ -167,7 +167,8 @@
"#endif"
]
},
- "libs": "-ldrm",
- "use": "egl"
+ "use": "drm egl"
},
"vulkan-server-buffer": {
"label": "Vulkan Buffer Sharing",
@@ -168,7 +167,8 @@
"exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;", "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;",
"return 0;" "return 0;"
] ]
@@ -22,7 +12,7 @@ index 2f424580..29222357 100644
}, },
"egl_1_5-wayland": { "egl_1_5-wayland": {
"label": "EGL 1.5 with Wayland Platform", "label": "EGL 1.5 with Wayland Platform",
@@ -183,7 +183,7 @@ @@ -182,7 +183,7 @@
"eglGetPlatformDisplay(EGL_PLATFORM_WAYLAND_EXT, (struct wl_display *)(nullptr), nullptr);" "eglGetPlatformDisplay(EGL_PLATFORM_WAYLAND_EXT, (struct wl_display *)(nullptr), nullptr);"
] ]
}, },
@@ -32,7 +22,7 @@ index 2f424580..29222357 100644
}, },
diff --git a/src/client/global/qwaylandclientextension.cpp b/src/client/global/qwaylandclientextension.cpp diff --git a/src/client/global/qwaylandclientextension.cpp b/src/client/global/qwaylandclientextension.cpp
index 966096a8..36609c08 100644 index 966096a88..36609c08f 100644
--- a/src/client/global/qwaylandclientextension.cpp --- a/src/client/global/qwaylandclientextension.cpp
+++ b/src/client/global/qwaylandclientextension.cpp +++ b/src/client/global/qwaylandclientextension.cpp
@@ -74,7 +74,10 @@ void QWaylandClientExtensionPrivate::handleRegistryGlobal(void *data, ::wl_regis @@ -74,7 +74,10 @@ void QWaylandClientExtensionPrivate::handleRegistryGlobal(void *data, ::wl_regis
@@ -62,7 +52,7 @@ index 966096a8..36609c08 100644
{ {
Q_D(const QWaylandClientExtension); Q_D(const QWaylandClientExtension);
diff --git a/src/client/global/qwaylandclientextension.h b/src/client/global/qwaylandclientextension.h diff --git a/src/client/global/qwaylandclientextension.h b/src/client/global/qwaylandclientextension.h
index 98272e57..5bd28398 100644 index 98272e571..5bd283985 100644
--- a/src/client/global/qwaylandclientextension.h --- a/src/client/global/qwaylandclientextension.h
+++ b/src/client/global/qwaylandclientextension.h +++ b/src/client/global/qwaylandclientextension.h
@@ -63,6 +63,7 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandClientExtension : public QObject @@ -63,6 +63,7 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandClientExtension : public QObject
@@ -74,7 +64,7 @@ index 98272e57..5bd28398 100644
QtWaylandClient::QWaylandIntegration *integration() const; QtWaylandClient::QWaylandIntegration *integration() const;
int version() const; int version() const;
diff --git a/src/client/global/qwaylandclientextension_p.h b/src/client/global/qwaylandclientextension_p.h diff --git a/src/client/global/qwaylandclientextension_p.h b/src/client/global/qwaylandclientextension_p.h
index 69cc46a0..9091efbe 100644 index 69cc46a0a..9091efbe5 100644
--- a/src/client/global/qwaylandclientextension_p.h --- a/src/client/global/qwaylandclientextension_p.h
+++ b/src/client/global/qwaylandclientextension_p.h +++ b/src/client/global/qwaylandclientextension_p.h
@@ -68,6 +68,7 @@ public: @@ -68,6 +68,7 @@ public:
@@ -86,7 +76,7 @@ index 69cc46a0..9091efbe 100644
class Q_WAYLAND_CLIENT_EXPORT QWaylandClientExtensionTemplatePrivate : public QWaylandClientExtensionPrivate class Q_WAYLAND_CLIENT_EXPORT QWaylandClientExtensionTemplatePrivate : public QWaylandClientExtensionPrivate
diff --git a/src/client/qwaylandabstractdecoration.cpp b/src/client/qwaylandabstractdecoration.cpp diff --git a/src/client/qwaylandabstractdecoration.cpp b/src/client/qwaylandabstractdecoration.cpp
index b628930d..d15a7f9f 100644 index b628930df..d15a7f9fe 100644
--- a/src/client/qwaylandabstractdecoration.cpp --- a/src/client/qwaylandabstractdecoration.cpp
+++ b/src/client/qwaylandabstractdecoration.cpp +++ b/src/client/qwaylandabstractdecoration.cpp
@@ -122,7 +122,7 @@ const QImage &QWaylandAbstractDecoration::contentImage() @@ -122,7 +122,7 @@ const QImage &QWaylandAbstractDecoration::contentImage()
@@ -98,92 +88,8 @@ index b628930d..d15a7f9f 100644
const QSize imageSize = waylandWindow()->surfaceSize() * bufferScale; const QSize imageSize = waylandWindow()->surfaceSize() * bufferScale;
d->m_decorationContentImage = QImage(imageSize, QImage::Format_ARGB32_Premultiplied); d->m_decorationContentImage = QImage(imageSize, QImage::Format_ARGB32_Premultiplied);
// Only scale by buffer scale, not QT_SCALE_FACTOR etc. // Only scale by buffer scale, not QT_SCALE_FACTOR etc.
diff --git a/src/client/qwaylandclipboard.cpp b/src/client/qwaylandclipboard.cpp
index 81f48e05..14561c77 100644
--- a/src/client/qwaylandclipboard.cpp
+++ b/src/client/qwaylandclipboard.cpp
@@ -54,10 +54,15 @@ namespace QtWaylandClient {
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 @@ QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode)
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 @@ QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode)
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 @@ void QWaylandClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode)
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 --git a/src/client/qwaylandclipboard_p.h b/src/client/qwaylandclipboard_p.h
index ce14e124..bb52683d 100644
--- a/src/client/qwaylandclipboard_p.h
+++ b/src/client/qwaylandclipboard_p.h
@@ -80,6 +80,7 @@ public:
private:
QWaylandDisplay *mDisplay = nullptr;
QMimeData m_emptyData;
+ QMimeData *m_clientClipboard[2];
};
}
diff --git a/src/client/qwaylandcursor.cpp b/src/client/qwaylandcursor.cpp diff --git a/src/client/qwaylandcursor.cpp b/src/client/qwaylandcursor.cpp
index e4eca9d4..ba76ba2d 100644 index e4eca9d4e..ba76ba2d0 100644
--- a/src/client/qwaylandcursor.cpp --- a/src/client/qwaylandcursor.cpp
+++ b/src/client/qwaylandcursor.cpp +++ b/src/client/qwaylandcursor.cpp
@@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
@@ -224,7 +130,7 @@ index e4eca9d4..ba76ba2d 100644
memcpy(buffer->image()->bits(), img.bits(), size_t(img.sizeInBytes())); memcpy(buffer->image()->bits(), img.bits(), size_t(img.sizeInBytes()));
return buffer; return buffer;
diff --git a/src/client/qwaylanddatadevice.cpp b/src/client/qwaylanddatadevice.cpp diff --git a/src/client/qwaylanddatadevice.cpp b/src/client/qwaylanddatadevice.cpp
index 1e2db786..07b18ab0 100644 index 4d2459d1c..c57f1a499 100644
--- a/src/client/qwaylanddatadevice.cpp --- a/src/client/qwaylanddatadevice.cpp
+++ b/src/client/qwaylanddatadevice.cpp +++ b/src/client/qwaylanddatadevice.cpp
@@ -72,6 +72,8 @@ QWaylandDataDevice::QWaylandDataDevice(QWaylandDataDeviceManager *manager, QWayl @@ -72,6 +72,8 @@ QWaylandDataDevice::QWaylandDataDevice(QWaylandDataDeviceManager *manager, QWayl
@@ -245,16 +151,9 @@ index 1e2db786..07b18ab0 100644
{ {
auto *seat = m_display->currentInputDevice(); auto *seat = m_display->currentInputDevice();
auto *origin = seat->pointerFocus(); auto *origin = seat->pointerFocus();
@@ -122,8 +124,38 @@ bool QWaylandDataDevice::startDrag(QMimeData *mimeData, QWaylandWindow *icon) @@ -129,7 +131,31 @@ bool QWaylandDataDevice::startDrag(QMimeData *mimeData, QWaylandWindow *icon)
return false; mimeData->setData("application/x-qt-avoid-empty-placeholder", QByteArray("1"));
}
+ // dragging data without mimetypes is a legal operation in Qt terms
+ // but Wayland uses a mimetype to determine if a drag is accepted or not
+ // In this rare case, insert a placeholder
+ if (mimeData->formats().isEmpty())
+ mimeData->setData(QString::fromLatin1("application/x-qt-avoid-empty-placeholder"), QByteArray("1"));
+
m_dragSource.reset(new QWaylandDataSource(m_display->dndSelectionHandler(), mimeData)); m_dragSource.reset(new QWaylandDataSource(m_display->dndSelectionHandler(), mimeData));
+ +
+ if (wl_data_device_get_version(object()) >= 3) + if (wl_data_device_get_version(object()) >= 3)
@@ -284,7 +183,7 @@ index 1e2db786..07b18ab0 100644
start_drag(m_dragSource->object(), origin->wlSurface(), icon->wlSurface(), m_display->currentInputDevice()->serial()); start_drag(m_dragSource->object(), origin->wlSurface(), icon->wlSurface(), m_display->currentInputDevice()->serial());
return true; return true;
@@ -152,7 +184,7 @@ void QWaylandDataDevice::data_device_drop() @@ -158,7 +184,7 @@ void QWaylandDataDevice::data_device_drop()
supportedActions = drag->supportedActions(); supportedActions = drag->supportedActions();
} else if (m_dragOffer) { } else if (m_dragOffer) {
dragData = m_dragOffer->mimeData(); dragData = m_dragOffer->mimeData();
@@ -293,7 +192,7 @@ index 1e2db786..07b18ab0 100644
} else { } else {
return; return;
} }
@@ -162,7 +194,11 @@ void QWaylandDataDevice::data_device_drop() @@ -168,7 +194,11 @@ void QWaylandDataDevice::data_device_drop()
QGuiApplication::keyboardModifiers()); QGuiApplication::keyboardModifiers());
if (drag) { if (drag) {
@@ -306,7 +205,7 @@ index 1e2db786..07b18ab0 100644
} }
} }
@@ -186,7 +222,7 @@ void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface, @@ -192,7 +222,7 @@ void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface,
supportedActions = drag->supportedActions(); supportedActions = drag->supportedActions();
} else if (m_dragOffer) { } else if (m_dragOffer) {
dragData = m_dragOffer->mimeData(); dragData = m_dragOffer->mimeData();
@@ -315,7 +214,7 @@ index 1e2db786..07b18ab0 100644
} }
const QPlatformDragQtResponse &response = QWindowSystemInterface::handleDrag(m_dragWindow, dragData, m_dragPoint, supportedActions, const QPlatformDragQtResponse &response = QWindowSystemInterface::handleDrag(m_dragWindow, dragData, m_dragPoint, supportedActions,
@@ -197,11 +233,7 @@ void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface, @@ -203,11 +233,7 @@ void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface,
static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response); static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response);
} }
@@ -328,7 +227,7 @@ index 1e2db786..07b18ab0 100644
} }
void QWaylandDataDevice::data_device_leave() void QWaylandDataDevice::data_device_leave()
@@ -235,10 +267,10 @@ void QWaylandDataDevice::data_device_motion(uint32_t time, wl_fixed_t x, wl_fixe @@ -241,10 +267,10 @@ void QWaylandDataDevice::data_device_motion(uint32_t time, wl_fixed_t x, wl_fixe
supportedActions = drag->supportedActions(); supportedActions = drag->supportedActions();
} else { } else {
dragData = m_dragOffer->mimeData(); dragData = m_dragOffer->mimeData();
@@ -341,7 +240,7 @@ index 1e2db786..07b18ab0 100644
QGuiApplication::mouseButtons(), QGuiApplication::mouseButtons(),
QGuiApplication::keyboardModifiers()); QGuiApplication::keyboardModifiers());
@@ -246,11 +278,7 @@ void QWaylandDataDevice::data_device_motion(uint32_t time, wl_fixed_t x, wl_fixe @@ -252,11 +278,7 @@ void QWaylandDataDevice::data_device_motion(uint32_t time, wl_fixed_t x, wl_fixe
static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response); static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response);
} }
@@ -354,7 +253,7 @@ index 1e2db786..07b18ab0 100644
} }
#endif // QT_CONFIG(draganddrop) #endif // QT_CONFIG(draganddrop)
@@ -277,14 +305,10 @@ void QWaylandDataDevice::selectionSourceCancelled() @@ -283,14 +305,10 @@ void QWaylandDataDevice::selectionSourceCancelled()
#if QT_CONFIG(draganddrop) #if QT_CONFIG(draganddrop)
void QWaylandDataDevice::dragSourceCancelled() void QWaylandDataDevice::dragSourceCancelled()
{ {
@@ -370,7 +269,7 @@ index 1e2db786..07b18ab0 100644
QPoint QWaylandDataDevice::calculateDragPosition(int x, int y, QWindow *wnd) const QPoint QWaylandDataDevice::calculateDragPosition(int x, int y, QWindow *wnd) const
{ {
QPoint pnt(wl_fixed_to_int(x), wl_fixed_to_int(y)); QPoint pnt(wl_fixed_to_int(x), wl_fixed_to_int(y));
@@ -297,6 +321,33 @@ QPoint QWaylandDataDevice::calculateDragPosition(int x, int y, QWindow *wnd) con @@ -303,6 +321,33 @@ QPoint QWaylandDataDevice::calculateDragPosition(int x, int y, QWindow *wnd) con
} }
return pnt; return pnt;
} }
@@ -405,7 +304,7 @@ index 1e2db786..07b18ab0 100644
} }
diff --git a/src/client/qwaylanddatadevice_p.h b/src/client/qwaylanddatadevice_p.h diff --git a/src/client/qwaylanddatadevice_p.h b/src/client/qwaylanddatadevice_p.h
index 16c3ad28..801dcc2c 100644 index 16c3ad28e..801dcc2c1 100644
--- a/src/client/qwaylanddatadevice_p.h --- a/src/client/qwaylanddatadevice_p.h
+++ b/src/client/qwaylanddatadevice_p.h +++ b/src/client/qwaylanddatadevice_p.h
@@ -64,6 +64,7 @@ QT_REQUIRE_CONFIG(wayland_datadevice); @@ -64,6 +64,7 @@ QT_REQUIRE_CONFIG(wayland_datadevice);
@@ -444,7 +343,7 @@ index 16c3ad28..801dcc2c 100644
QWaylandDisplay *m_display = nullptr; QWaylandDisplay *m_display = nullptr;
QWaylandInputDevice *m_inputDevice = nullptr; QWaylandInputDevice *m_inputDevice = nullptr;
diff --git a/src/client/qwaylanddatadevicemanager.cpp b/src/client/qwaylanddatadevicemanager.cpp diff --git a/src/client/qwaylanddatadevicemanager.cpp b/src/client/qwaylanddatadevicemanager.cpp
index 35d67307..6dc4f77f 100644 index 35d67307f..6dc4f77f5 100644
--- a/src/client/qwaylanddatadevicemanager.cpp --- a/src/client/qwaylanddatadevicemanager.cpp
+++ b/src/client/qwaylanddatadevicemanager.cpp +++ b/src/client/qwaylanddatadevicemanager.cpp
@@ -50,8 +50,8 @@ QT_BEGIN_NAMESPACE @@ -50,8 +50,8 @@ QT_BEGIN_NAMESPACE
@@ -459,7 +358,7 @@ index 35d67307..6dc4f77f 100644
{ {
// Create transfer devices for all input devices. // Create transfer devices for all input devices.
diff --git a/src/client/qwaylanddatadevicemanager_p.h b/src/client/qwaylanddatadevicemanager_p.h diff --git a/src/client/qwaylanddatadevicemanager_p.h b/src/client/qwaylanddatadevicemanager_p.h
index bd05c0fb..510d9be4 100644 index bd05c0fbb..510d9be48 100644
--- a/src/client/qwaylanddatadevicemanager_p.h --- a/src/client/qwaylanddatadevicemanager_p.h
+++ b/src/client/qwaylanddatadevicemanager_p.h +++ b/src/client/qwaylanddatadevicemanager_p.h
@@ -68,7 +68,7 @@ class QWaylandInputDevice; @@ -68,7 +68,7 @@ class QWaylandInputDevice;
@@ -472,10 +371,22 @@ index bd05c0fb..510d9be4 100644
QWaylandDataDevice *getDataDevice(QWaylandInputDevice *inputDevice); QWaylandDataDevice *getDataDevice(QWaylandInputDevice *inputDevice);
diff --git a/src/client/qwaylanddataoffer.cpp b/src/client/qwaylanddataoffer.cpp diff --git a/src/client/qwaylanddataoffer.cpp b/src/client/qwaylanddataoffer.cpp
index 2297e8a1..fe0ea8c9 100644 index 2297e8a16..0241a1dfc 100644
--- a/src/client/qwaylanddataoffer.cpp --- a/src/client/qwaylanddataoffer.cpp
+++ b/src/client/qwaylanddataoffer.cpp +++ b/src/client/qwaylanddataoffer.cpp
@@ -82,6 +82,15 @@ QMimeData *QWaylandDataOffer::mimeData() @@ -56,6 +56,11 @@ static QString utf8Text()
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)
@@ -82,6 +87,15 @@ QMimeData *QWaylandDataOffer::mimeData()
return m_mimeData.data(); return m_mimeData.data();
} }
@@ -491,7 +402,7 @@ index 2297e8a1..fe0ea8c9 100644
void QWaylandDataOffer::startReceiving(const QString &mimeType, int fd) void QWaylandDataOffer::startReceiving(const QString &mimeType, int fd)
{ {
receive(mimeType, fd); receive(mimeType, fd);
@@ -93,6 +102,22 @@ void QWaylandDataOffer::data_offer_offer(const QString &mime_type) @@ -93,6 +107,22 @@ void QWaylandDataOffer::data_offer_offer(const QString &mime_type)
m_mimeData->appendFormat(mime_type); m_mimeData->appendFormat(mime_type);
} }
@@ -514,7 +425,16 @@ index 2297e8a1..fe0ea8c9 100644
QWaylandMimeData::QWaylandMimeData(QWaylandAbstractDataOffer *dataOffer) QWaylandMimeData::QWaylandMimeData(QWaylandAbstractDataOffer *dataOffer)
: m_dataOffer(dataOffer) : m_dataOffer(dataOffer)
{ {
@@ -163,17 +188,18 @@ QVariant QWaylandMimeData::retrieveData_sys(const QString &mimeType, QVariant::T @@ -157,23 +187,26 @@ QVariant QWaylandMimeData::retrieveData_sys(const QString &mimeType, QVariant::T
}
close(pipefd[0]);
- m_data.insert(mimeType, content);
+ if (mimeType != portalFileTransfer())
+ m_data.insert(mimeType, content);
+
return content;
}
int QWaylandMimeData::readData(int fd, QByteArray &data) const int QWaylandMimeData::readData(int fd, QByteArray &data) const
{ {
@@ -541,7 +461,7 @@ index 2297e8a1..fe0ea8c9 100644
} else if (ready == 0) { } else if (ready == 0) {
qWarning("QWaylandDataOffer: timeout reading from pipe"); qWarning("QWaylandDataOffer: timeout reading from pipe");
diff --git a/src/client/qwaylanddataoffer_p.h b/src/client/qwaylanddataoffer_p.h diff --git a/src/client/qwaylanddataoffer_p.h b/src/client/qwaylanddataoffer_p.h
index 9cf1483c..6f667398 100644 index 9cf1483ca..6f6673984 100644
--- a/src/client/qwaylanddataoffer_p.h --- a/src/client/qwaylanddataoffer_p.h
+++ b/src/client/qwaylanddataoffer_p.h +++ b/src/client/qwaylanddataoffer_p.h
@@ -82,6 +82,7 @@ public: @@ -82,6 +82,7 @@ public:
@@ -567,22 +487,10 @@ index 9cf1483c..6f667398 100644
diff --git a/src/client/qwaylanddatasource.cpp b/src/client/qwaylanddatasource.cpp diff --git a/src/client/qwaylanddatasource.cpp b/src/client/qwaylanddatasource.cpp
index c2bc9dc4..321170a6 100644 index c86c14162..321170a66 100644
--- a/src/client/qwaylanddatasource.cpp --- a/src/client/qwaylanddatasource.cpp
+++ b/src/client/qwaylanddatasource.cpp +++ b/src/client/qwaylanddatasource.cpp
@@ -72,11 +72,6 @@ QWaylandDataSource::~QWaylandDataSource() @@ -105,7 +105,32 @@ void QWaylandDataSource::data_source_send(const QString &mime_type, int32_t fd)
destroy();
}
-QMimeData * QWaylandDataSource::mimeData() const
-{
- return m_mime_data;
-}
-
void QWaylandDataSource::data_source_cancelled()
{
Q_EMIT cancelled();
@@ -110,7 +105,32 @@ void QWaylandDataSource::data_source_send(const QString &mime_type, int32_t fd)
void QWaylandDataSource::data_source_target(const QString &mime_type) void QWaylandDataSource::data_source_target(const QString &mime_type)
{ {
@@ -617,15 +525,12 @@ index c2bc9dc4..321170a6 100644
} }
diff --git a/src/client/qwaylanddatasource_p.h b/src/client/qwaylanddatasource_p.h diff --git a/src/client/qwaylanddatasource_p.h b/src/client/qwaylanddatasource_p.h
index 3003da1b..089c5485 100644 index 520b31656..089c54853 100644
--- a/src/client/qwaylanddatasource_p.h --- a/src/client/qwaylanddatasource_p.h
+++ b/src/client/qwaylanddatasource_p.h +++ b/src/client/qwaylanddatasource_p.h
@@ -74,19 +74,25 @@ public: @@ -75,16 +75,24 @@ public:
QWaylandDataSource(QWaylandDataDeviceManager *dataDeviceManager, QMimeData *mimeData);
~QWaylandDataSource() override; ~QWaylandDataSource() override;
- QMimeData *mimeData() const;
-
Q_SIGNALS: Q_SIGNALS:
- void targetChanged(const QString &mime_type); - void targetChanged(const QString &mime_type);
void cancelled(); void cancelled();
@@ -650,7 +555,7 @@ index 3003da1b..089c5485 100644
} }
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
index 8a6d5db1..737b539d 100644 index 8a6d5db1d..737b539de 100644
--- a/src/client/qwaylanddisplay.cpp --- a/src/client/qwaylanddisplay.cpp
+++ b/src/client/qwaylanddisplay.cpp +++ b/src/client/qwaylanddisplay.cpp
@@ -87,10 +87,203 @@ @@ -87,10 +87,203 @@
@@ -1195,7 +1100,7 @@ index 8a6d5db1..737b539d 100644
#include "moc_qwaylanddisplay_p.cpp" #include "moc_qwaylanddisplay_p.cpp"
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
index 1bad8b67..cf91b924 100644 index 1bad8b678..cf91b9245 100644
--- a/src/client/qwaylanddisplay_p.h --- a/src/client/qwaylanddisplay_p.h
+++ b/src/client/qwaylanddisplay_p.h +++ b/src/client/qwaylanddisplay_p.h
@@ -111,6 +111,7 @@ class QWaylandSurface; @@ -111,6 +111,7 @@ class QWaylandSurface;
@@ -1264,7 +1169,7 @@ index 1bad8b67..cf91b924 100644
bool mClientSideInputContextRequested = !QPlatformInputContextFactory::requested().isNull(); bool mClientSideInputContextRequested = !QPlatformInputContextFactory::requested().isNull();
diff --git a/src/client/qwaylanddnd.cpp b/src/client/qwaylanddnd.cpp diff --git a/src/client/qwaylanddnd.cpp b/src/client/qwaylanddnd.cpp
index 6535aa16..7c53f5fa 100644 index 6535aa16b..7c53f5faa 100644
--- a/src/client/qwaylanddnd.cpp --- a/src/client/qwaylanddnd.cpp
+++ b/src/client/qwaylanddnd.cpp +++ b/src/client/qwaylanddnd.cpp
@@ -66,7 +66,7 @@ void QWaylandDrag::startDrag() @@ -66,7 +66,7 @@ void QWaylandDrag::startDrag()
@@ -1340,7 +1245,7 @@ index 6535aa16..7c53f5fa 100644
} }
diff --git a/src/client/qwaylanddnd_p.h b/src/client/qwaylanddnd_p.h diff --git a/src/client/qwaylanddnd_p.h b/src/client/qwaylanddnd_p.h
index 474fe2ab..46f629ac 100644 index 474fe2ab1..46f629ace 100644
--- a/src/client/qwaylanddnd_p.h --- a/src/client/qwaylanddnd_p.h
+++ b/src/client/qwaylanddnd_p.h +++ b/src/client/qwaylanddnd_p.h
@@ -71,9 +71,10 @@ public: @@ -71,9 +71,10 @@ public:
@@ -1365,30 +1270,8 @@ index 474fe2ab..46f629ac 100644
private: private:
QWaylandDisplay *m_display = nullptr; QWaylandDisplay *m_display = nullptr;
diff --git a/src/client/qwaylandinputcontext.cpp b/src/client/qwaylandinputcontext.cpp
index 47696a6a..9435e961 100644
--- a/src/client/qwaylandinputcontext.cpp
+++ b/src/client/qwaylandinputcontext.cpp
@@ -93,9 +93,14 @@ void QWaylandTextInput::reset()
void QWaylandTextInput::commit()
{
if (QObject *o = QGuiApplication::focusObject()) {
- QInputMethodEvent event;
- event.setCommitString(m_preeditCommit);
- QCoreApplication::sendEvent(o, &event);
+ if (!m_preeditCommit.isEmpty()) {
+
+ QInputMethodEvent event;
+ event.setCommitString(m_preeditCommit);
+ m_preeditCommit = QString();
+
+ QCoreApplication::sendEvent(o, &event);
+ }
}
reset();
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
index b0e9692b..ab978d3f 100644 index 346c438c6..ab978d3f4 100644
--- a/src/client/qwaylandinputdevice.cpp --- a/src/client/qwaylandinputdevice.cpp
+++ b/src/client/qwaylandinputdevice.cpp +++ b/src/client/qwaylandinputdevice.cpp
@@ -310,8 +310,7 @@ void QWaylandInputDevice::Pointer::updateCursor() @@ -310,8 +310,7 @@ void QWaylandInputDevice::Pointer::updateCursor()
@@ -1401,15 +1284,6 @@ index b0e9692b..ab978d3f 100644
return; return;
} }
@@ -846,7 +845,7 @@ void QWaylandInputDevice::Pointer::releaseButtons()
mButtons = Qt::NoButton;
if (auto *window = focusWindow()) {
- MotionEvent e(focusWindow(), mParent->mTime, mSurfacePos, mGlobalPos, mButtons, mParent->modifiers());
+ ReleaseEvent e(focusWindow(), mParent->mTime, mSurfacePos, mGlobalPos, mButtons, Qt::NoButton, mParent->modifiers());
window->handleMouse(mParent, e);
}
}
@@ -1304,14 +1303,6 @@ void QWaylandInputDevice::Keyboard::handleFocusDestroyed() @@ -1304,14 +1303,6 @@ void QWaylandInputDevice::Keyboard::handleFocusDestroyed()
void QWaylandInputDevice::Keyboard::handleFocusLost() void QWaylandInputDevice::Keyboard::handleFocusLost()
{ {
@@ -1434,7 +1308,7 @@ index b0e9692b..ab978d3f 100644
} }
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
index d257e2e3..54861600 100644 index d257e2e33..548616005 100644
--- a/src/client/qwaylandintegration.cpp --- a/src/client/qwaylandintegration.cpp
+++ b/src/client/qwaylandintegration.cpp +++ b/src/client/qwaylandintegration.cpp
@@ -125,6 +125,9 @@ QWaylandIntegration::QWaylandIntegration() @@ -125,6 +125,9 @@ QWaylandIntegration::QWaylandIntegration()
@@ -1486,7 +1360,7 @@ index d257e2e3..54861600 100644
{ {
if (auto *seat = mDisplay->currentInputDevice()) if (auto *seat = mDisplay->currentInputDevice())
diff --git a/src/client/qwaylandintegration_p.h b/src/client/qwaylandintegration_p.h diff --git a/src/client/qwaylandintegration_p.h b/src/client/qwaylandintegration_p.h
index ff70ae25..73b80658 100644 index ff70ae25d..73b806588 100644
--- a/src/client/qwaylandintegration_p.h --- a/src/client/qwaylandintegration_p.h
+++ b/src/client/qwaylandintegration_p.h +++ b/src/client/qwaylandintegration_p.h
@@ -107,6 +107,8 @@ public: @@ -107,6 +107,8 @@ public:
@@ -1498,21 +1372,8 @@ index ff70ae25..73b80658 100644
QList<int> possibleKeys(const QKeyEvent *event) const override; QList<int> possibleKeys(const QKeyEvent *event) const override;
QStringList themeNames() const override; QStringList themeNames() const override;
diff --git a/src/client/qwaylandnativeinterface.cpp b/src/client/qwaylandnativeinterface.cpp
index bf54a1a0..9763c312 100644
--- a/src/client/qwaylandnativeinterface.cpp
+++ b/src/client/qwaylandnativeinterface.cpp
@@ -139,7 +139,7 @@ void *QWaylandNativeInterface::nativeResourceForScreen(const QByteArray &resourc
{
QByteArray lowerCaseResource = resourceString.toLower();
- if (lowerCaseResource == "output")
+ if (lowerCaseResource == "output" && !screen->handle()->isPlaceholder())
return ((QWaylandScreen *) screen->handle())->output();
return nullptr;
diff --git a/src/client/qwaylandprimaryselectionv1.cpp b/src/client/qwaylandprimaryselectionv1.cpp diff --git a/src/client/qwaylandprimaryselectionv1.cpp b/src/client/qwaylandprimaryselectionv1.cpp
index 7805dd73..dac532b2 100644 index 7805dd734..dac532b20 100644
--- a/src/client/qwaylandprimaryselectionv1.cpp --- a/src/client/qwaylandprimaryselectionv1.cpp
+++ b/src/client/qwaylandprimaryselectionv1.cpp +++ b/src/client/qwaylandprimaryselectionv1.cpp
@@ -54,11 +54,6 @@ QWaylandPrimarySelectionDeviceManagerV1::QWaylandPrimarySelectionDeviceManagerV1 @@ -54,11 +54,6 @@ QWaylandPrimarySelectionDeviceManagerV1::QWaylandPrimarySelectionDeviceManagerV1
@@ -1528,7 +1389,7 @@ index 7805dd73..dac532b2 100644
QWaylandPrimarySelectionDeviceV1 *QWaylandPrimarySelectionDeviceManagerV1::createDevice(QWaylandInputDevice *seat) QWaylandPrimarySelectionDeviceV1 *QWaylandPrimarySelectionDeviceManagerV1::createDevice(QWaylandInputDevice *seat)
diff --git a/src/client/qwaylandscreen.cpp b/src/client/qwaylandscreen.cpp diff --git a/src/client/qwaylandscreen.cpp b/src/client/qwaylandscreen.cpp
index 6cb337de..5537dafd 100644 index 6cb337de3..5537dafd0 100644
--- a/src/client/qwaylandscreen.cpp --- a/src/client/qwaylandscreen.cpp
+++ b/src/client/qwaylandscreen.cpp +++ b/src/client/qwaylandscreen.cpp
@@ -60,7 +60,7 @@ QWaylandXdgOutputManagerV1::QWaylandXdgOutputManagerV1(QWaylandDisplay* display, @@ -60,7 +60,7 @@ QWaylandXdgOutputManagerV1::QWaylandXdgOutputManagerV1(QWaylandDisplay* display,
@@ -1617,7 +1478,7 @@ index 6cb337de..5537dafd 100644
void QWaylandScreen::updateXdgOutputProperties() void QWaylandScreen::updateXdgOutputProperties()
diff --git a/src/client/qwaylandscreen_p.h b/src/client/qwaylandscreen_p.h diff --git a/src/client/qwaylandscreen_p.h b/src/client/qwaylandscreen_p.h
index df1c94f2..050cfdc0 100644 index df1c94f24..050cfdc06 100644
--- a/src/client/qwaylandscreen_p.h --- a/src/client/qwaylandscreen_p.h
+++ b/src/client/qwaylandscreen_p.h +++ b/src/client/qwaylandscreen_p.h
@@ -116,6 +116,13 @@ public: @@ -116,6 +116,13 @@ public:
@@ -1645,7 +1506,7 @@ index df1c94f2..050cfdc0 100644
#if QT_CONFIG(cursor) #if QT_CONFIG(cursor)
diff --git a/src/client/qwaylandshmbackingstore.cpp b/src/client/qwaylandshmbackingstore.cpp diff --git a/src/client/qwaylandshmbackingstore.cpp b/src/client/qwaylandshmbackingstore.cpp
index dc7ff670..145f933b 100644 index dc7ff6708..145f933b7 100644
--- a/src/client/qwaylandshmbackingstore.cpp --- a/src/client/qwaylandshmbackingstore.cpp
+++ b/src/client/qwaylandshmbackingstore.cpp +++ b/src/client/qwaylandshmbackingstore.cpp
@@ -52,6 +52,7 @@ @@ -52,6 +52,7 @@
@@ -1722,7 +1583,7 @@ index dc7ff670..145f933b 100644
// We look for a free buffer to draw into. If the buffer is not the last buffer we used, // We look for a free buffer to draw into. If the buffer is not the last buffer we used,
diff --git a/src/client/qwaylandshmbackingstore_p.h b/src/client/qwaylandshmbackingstore_p.h diff --git a/src/client/qwaylandshmbackingstore_p.h b/src/client/qwaylandshmbackingstore_p.h
index e01632da..f3fae438 100644 index e01632daf..f3fae4380 100644
--- a/src/client/qwaylandshmbackingstore_p.h --- a/src/client/qwaylandshmbackingstore_p.h
+++ b/src/client/qwaylandshmbackingstore_p.h +++ b/src/client/qwaylandshmbackingstore_p.h
@@ -71,7 +71,7 @@ class QWaylandWindow; @@ -71,7 +71,7 @@ class QWaylandWindow;
@@ -1735,7 +1596,7 @@ index e01632da..f3fae438 100644
QSize size() const override { return mImage.size(); } QSize size() const override { return mImage.size(); }
int scale() const override { return int(mImage.devicePixelRatio()); } int scale() const override { return int(mImage.devicePixelRatio()); }
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index d57094a7..7a9bccc1 100644 index d57094a71..7a9bccc16 100644
--- a/src/client/qwaylandwindow.cpp --- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp
@@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr; @@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
@@ -2210,7 +2071,7 @@ index d57094a7..7a9bccc1 100644
QT_END_NAMESPACE QT_END_NAMESPACE
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
index 01337cff..741f9e5c 100644 index 01337cff1..741f9e5cc 100644
--- a/src/client/qwaylandwindow_p.h --- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h +++ b/src/client/qwaylandwindow_p.h
@@ -98,6 +98,9 @@ public: @@ -98,6 +98,9 @@ public:
@@ -2306,7 +2167,7 @@ index 01337cff..741f9e5c 100644
}; };
diff --git a/src/client/shellintegration/qwaylandshellintegration_p.h b/src/client/shellintegration/qwaylandshellintegration_p.h diff --git a/src/client/shellintegration/qwaylandshellintegration_p.h b/src/client/shellintegration/qwaylandshellintegration_p.h
index ccad0048..4cc9b3b8 100644 index ccad00481..4cc9b3b84 100644
--- a/src/client/shellintegration/qwaylandshellintegration_p.h --- a/src/client/shellintegration/qwaylandshellintegration_p.h
+++ b/src/client/shellintegration/qwaylandshellintegration_p.h +++ b/src/client/shellintegration/qwaylandshellintegration_p.h
@@ -73,11 +73,10 @@ public: @@ -73,11 +73,10 @@ public:
@@ -2325,7 +2186,7 @@ index ccad0048..4cc9b3b8 100644
virtual void *nativeResourceForWindow(const QByteArray &resource, QWindow *window) { virtual void *nativeResourceForWindow(const QByteArray &resource, QWindow *window) {
Q_UNUSED(resource); Q_UNUSED(resource);
diff --git a/src/compositor/configure.json b/src/compositor/configure.json diff --git a/src/compositor/configure.json b/src/compositor/configure.json
index bcfd5215..da95d07b 100644 index c5b0f03ed..031e4cc3a 100644
--- a/src/compositor/configure.json --- a/src/compositor/configure.json
+++ b/src/compositor/configure.json +++ b/src/compositor/configure.json
@@ -7,6 +7,31 @@ @@ -7,6 +7,31 @@
@@ -2360,27 +2221,7 @@ index bcfd5215..da95d07b 100644
"wayland-server": { "wayland-server": {
"label": "wayland-server", "label": "wayland-server",
"headers": "wayland-version.h", "headers": "wayland-version.h",
@@ -151,8 +176,7 @@ @@ -193,7 +218,8 @@
"#endif"
]
},
- "libs": "-ldrm",
- "use": "egl"
+ "use": "drm egl"
},
"dmabuf-client-buffer": {
"label": "Linux Client dma-buf Buffer Sharing",
@@ -176,8 +200,7 @@
"return 0;"
]
},
- "libs": "-ldrm",
- "use": "egl"
+ "use": "drm egl"
},
"vulkan-server-buffer": {
"label": "Vulkan Buffer Sharing",
@@ -195,7 +218,8 @@
"exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;", "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;",
"return 0;" "return 0;"
] ]
@@ -2390,8 +2231,55 @@ index bcfd5215..da95d07b 100644
} }
}, },
diff --git a/src/compositor/wayland_wrapper/qwldatadevice.cpp b/src/compositor/wayland_wrapper/qwldatadevice.cpp
index a3a795f9b..f301678e2 100644
--- a/src/compositor/wayland_wrapper/qwldatadevice.cpp
+++ b/src/compositor/wayland_wrapper/qwldatadevice.cpp
@@ -76,6 +76,9 @@ void DataDevice::sourceDestroyed(DataSource *source)
{
if (m_selectionSource == source)
m_selectionSource = nullptr;
+
+ if (m_dragDataSource == source)
+ m_dragDataSource = nullptr;
}
#if QT_CONFIG(draganddrop)
@@ -105,9 +108,11 @@ void DataDevice::setDragFocus(QWaylandSurface *focus, const QPointF &localPositi
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 @@ void DataDevice::drop()
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 @@ void DataDevice::data_device_start_drag(Resource *resource, struct ::wl_resource
{
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 --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
index e00c28c3..dbe2845a 100644 index e00c28c3b..95e8c666c 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp --- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp +++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
@@ -40,6 +40,7 @@ @@ -40,6 +40,7 @@
@@ -2402,15 +2290,17 @@ index e00c28c3..dbe2845a 100644
#include "qwaylandglcontext.h" #include "qwaylandglcontext.h"
#include <QtEglSupport/private/qeglconvenience_p.h> #include <QtEglSupport/private/qeglconvenience_p.h>
@@ -115,6 +116,7 @@ void QWaylandEglWindow::updateSurface(bool create) @@ -115,21 +116,25 @@ void QWaylandEglWindow::updateSurface(bool create)
} }
mOffset = QPoint(); mOffset = QPoint();
} else { } else {
+ QReadLocker locker(&mSurfaceLock); + QReadLocker locker(&mSurfaceLock);
if (m_waylandEglWindow) { if (m_waylandEglWindow) {
int current_width, current_height; - int current_width, current_height;
+ int current_width = 0;
+ int current_height = 0;
static bool disableResizeCheck = qgetenv("QT_WAYLAND_DISABLE_RESIZECHECK").toInt(); static bool disableResizeCheck = qgetenv("QT_WAYLAND_DISABLE_RESIZECHECK").toInt();
@@ -122,14 +124,16 @@ void QWaylandEglWindow::updateSurface(bool create)
if (!disableResizeCheck) { if (!disableResizeCheck) {
wl_egl_window_get_attached_size(m_waylandEglWindow, &current_width, &current_height); wl_egl_window_get_attached_size(m_waylandEglWindow, &current_width, &current_height);
} }
@@ -2431,7 +2321,7 @@ index e00c28c3..dbe2845a 100644
if (!m_eglSurface && m_waylandEglWindow && create) { if (!m_eglSurface && m_waylandEglWindow && create) {
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
index 2fccbcea..ad1e5ee9 100644 index 2fccbcea5..ad1e5ee9f 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h --- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h +++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
@@ -85,6 +85,7 @@ private: @@ -85,6 +85,7 @@ private:
@@ -2443,7 +2333,7 @@ index 2fccbcea..ad1e5ee9 100644
} }
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
index c1f45fa6..bbc63444 100644 index c1f45fa69..bbc634445 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp --- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp +++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
@@ -195,7 +195,7 @@ public: @@ -195,7 +195,7 @@ public:
@@ -2456,7 +2346,7 @@ index c1f45fa6..bbc63444 100644
//Draw Decoration //Draw Decoration
diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5.cpp b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5.cpp diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5.cpp b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5.cpp
index 85d25e3c..60bdd491 100644 index 85d25e3c0..60bdd4911 100644
--- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5.cpp --- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5.cpp
+++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5.cpp +++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5.cpp
@@ -47,18 +47,21 @@ QT_BEGIN_NAMESPACE @@ -47,18 +47,21 @@ QT_BEGIN_NAMESPACE
@@ -2483,7 +2373,7 @@ index 85d25e3c..60bdd491 100644
} }
diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5_p.h b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5_p.h diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5_p.h b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5_p.h
index 7494f6a6..d85f130b 100644 index 7494f6a67..d85f130bc 100644
--- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5_p.h --- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5_p.h
+++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5_p.h +++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgpopupv5_p.h
@@ -70,7 +70,7 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgPopupV5 : public QWaylandShellSurface @@ -70,7 +70,7 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgPopupV5 : public QWaylandShellSurface
@@ -2504,7 +2394,7 @@ index 7494f6a6..d85f130b 100644
}; };
diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp
index 7e242c4a..def8452a 100644 index 7e242c4a5..def8452a1 100644
--- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp --- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp
+++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp +++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp
@@ -84,7 +84,7 @@ QWaylandXdgPopupV5 *QWaylandXdgShellV5::createXdgPopup(QWaylandWindow *window, Q @@ -84,7 +84,7 @@ QWaylandXdgPopupV5 *QWaylandXdgShellV5::createXdgPopup(QWaylandWindow *window, Q
@@ -2517,7 +2407,7 @@ index 7e242c4a..def8452a 100644
QObject::connect(popup, &QWaylandXdgPopupV5::destroyed, [this, window](){ QObject::connect(popup, &QWaylandXdgPopupV5::destroyed, [this, window](){
m_popups.removeOne(window); m_popups.removeOne(window);
diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
index 4e25949f..cfc60939 100644 index 4e25949fa..cfc609394 100644
--- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp --- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
+++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp +++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
@@ -85,13 +85,6 @@ QWaylandShellSurface *QWaylandXdgShellV5Integration::createShellSurface(QWayland @@ -85,13 +85,6 @@ QWaylandShellSurface *QWaylandXdgShellV5Integration::createShellSurface(QWayland
@@ -2535,7 +2425,7 @@ index 4e25949f..cfc60939 100644
QT_END_NAMESPACE QT_END_NAMESPACE
diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
index ce6bdb9e..aed88670 100644 index ce6bdb9ee..aed886707 100644
--- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h --- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
+++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h +++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
@@ -67,7 +67,6 @@ public: @@ -67,7 +67,6 @@ public:
@@ -2547,7 +2437,7 @@ index ce6bdb9e..aed88670 100644
private: private:
QScopedPointer<QWaylandXdgShellV5> m_xdgShell; QScopedPointer<QWaylandXdgShellV5> m_xdgShell;
diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
index 8c371661..151c78e3 100644 index 8c371661f..151c78e38 100644
--- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp --- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
+++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp +++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
@@ -174,6 +174,7 @@ QWaylandXdgSurfaceV6::Popup::Popup(QWaylandXdgSurfaceV6 *xdgSurface, QWaylandXdg @@ -174,6 +174,7 @@ QWaylandXdgSurfaceV6::Popup::Popup(QWaylandXdgSurfaceV6 *xdgSurface, QWaylandXdg
@@ -2568,7 +2458,7 @@ index 8c371661..151c78e3 100644
auto *shell = m_xdgSurface->m_shell; auto *shell = m_xdgSurface->m_shell;
Q_ASSERT(shell->m_topmostGrabbingPopup == this); Q_ASSERT(shell->m_topmostGrabbingPopup == this);
diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
index 03164316..e8da8ba1 100644 index 031643165..e8da8ba12 100644
--- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp --- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
+++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp +++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
@@ -68,20 +68,6 @@ QWaylandShellSurface *QWaylandXdgShellV6Integration::createShellSurface(QWayland @@ -68,20 +68,6 @@ QWaylandShellSurface *QWaylandXdgShellV6Integration::createShellSurface(QWayland
@@ -2593,7 +2483,7 @@ index 03164316..e8da8ba1 100644
QT_END_NAMESPACE QT_END_NAMESPACE
diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
index 261f8cbb..c1bcd5c6 100644 index 261f8cbb4..c1bcd5c68 100644
--- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h --- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
+++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h +++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
@@ -65,7 +65,6 @@ public: @@ -65,7 +65,6 @@ public:
@@ -2605,7 +2495,7 @@ index 261f8cbb..c1bcd5c6 100644
private: private:
QScopedPointer<QWaylandXdgShellV6> m_xdgShell; QScopedPointer<QWaylandXdgShellV6> m_xdgShell;
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
index 94ea573e..9c6cbb81 100644 index 49e9d9538..9c6cbb81f 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp --- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp +++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
@@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
@@ -2749,22 +2639,18 @@ index 94ea573e..9c6cbb81 100644
auto positioner = new QtWayland::xdg_positioner(m_shell->create_positioner()); auto positioner = new QtWayland::xdg_positioner(m_shell->create_positioner());
// set_popup expects a position relative to the parent // set_popup expects a position relative to the parent
QPoint transientPos = m_window->geometry().topLeft(); // this is absolute QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
@@ -425,11 +425,10 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent) @@ -426,8 +426,9 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent)
positioner->set_gravity(QtWayland::xdg_positioner::gravity_bottom_right);
positioner->set_size(m_window->geometry().width(), m_window->geometry().height()); positioner->set_size(m_window->geometry().width(), m_window->geometry().height());
positioner->set_constraint_adjustment(QtWayland::xdg_positioner::constraint_adjustment_slide_x positioner->set_constraint_adjustment(QtWayland::xdg_positioner::constraint_adjustment_slide_x
- | QtWayland::xdg_positioner::constraint_adjustment_slide_y | QtWayland::xdg_positioner::constraint_adjustment_slide_y);
- | QtWayland::xdg_positioner::constraint_adjustment_flip_x
- | QtWayland::xdg_positioner::constraint_adjustment_flip_y);
- m_popup = new Popup(this, parentXdgSurface, positioner); - m_popup = new Popup(this, parentXdgSurface, positioner);
+ | QtWayland::xdg_positioner::constraint_adjustment_slide_y);
+ m_popup = new Popup(this, parent, positioner); + m_popup = new Popup(this, parent, positioner);
positioner->destroy(); positioner->destroy();
+ +
delete positioner; delete positioner;
} }
@@ -466,8 +465,10 @@ void QWaylandXdgSurface::setGrabPopup(QWaylandWindow *parent, QWaylandInputDevic @@ -464,8 +465,10 @@ void QWaylandXdgSurface::setGrabPopup(QWaylandWindow *parent, QWaylandInputDevic
if (m_popup && m_popup->m_xdgSurface && m_popup->m_xdgSurface->window()) if (m_popup && m_popup->m_xdgSurface && m_popup->m_xdgSurface->window())
enter = m_popup->m_xdgSurface->window()->window(); enter = m_popup->m_xdgSurface->window()->window();
@@ -2778,7 +2664,7 @@ index 94ea573e..9c6cbb81 100644
void QWaylandXdgSurface::xdg_surface_configure(uint32_t serial) void QWaylandXdgSurface::xdg_surface_configure(uint32_t serial)
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h
index 96785205..4b518f0a 100644 index 96785205f..4b518f0a1 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h --- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h +++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell_p.h
@@ -131,14 +131,15 @@ private: @@ -131,14 +131,15 @@ private:
@@ -2800,7 +2686,7 @@ index 96785205..4b518f0a 100644
}; };
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
index 8769d971..da0dd6a7 100644 index 8769d9716..da0dd6a72 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp --- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp +++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
@@ -69,20 +69,6 @@ QWaylandShellSurface *QWaylandXdgShellIntegration::createShellSurface(QWaylandWi @@ -69,20 +69,6 @@ QWaylandShellSurface *QWaylandXdgShellIntegration::createShellSurface(QWaylandWi
@@ -2825,7 +2711,7 @@ index 8769d971..da0dd6a7 100644
QT_END_NAMESPACE QT_END_NAMESPACE
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
index b6caa6c9..2f929f98 100644 index b6caa6c95..2f929f98a 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h --- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h +++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
@@ -65,7 +65,6 @@ public: @@ -65,7 +65,6 @@ public:
@@ -2837,7 +2723,7 @@ index b6caa6c9..2f929f98 100644
private: private:
QScopedPointer<QWaylandXdgShell> m_xdgShell; QScopedPointer<QWaylandXdgShell> m_xdgShell;
diff --git a/src/shared/qwaylandmimehelper.cpp b/src/shared/qwaylandmimehelper.cpp diff --git a/src/shared/qwaylandmimehelper.cpp b/src/shared/qwaylandmimehelper.cpp
index c5266ab3..e2fe1928 100644 index c5266ab3e..e2fe19282 100644
--- a/src/shared/qwaylandmimehelper.cpp --- a/src/shared/qwaylandmimehelper.cpp
+++ b/src/shared/qwaylandmimehelper.cpp +++ b/src/shared/qwaylandmimehelper.cpp
@@ -60,7 +60,7 @@ QByteArray QWaylandMimeHelper::getByteArray(QMimeData *mimeData, const QString & @@ -60,7 +60,7 @@ QByteArray QWaylandMimeHelper::getByteArray(QMimeData *mimeData, const QString &
@@ -2850,7 +2736,7 @@ index c5266ab3..e2fe1928 100644
fmt = imgFmt; fmt = imgFmt;
} }
diff --git a/tests/auto/client/datadevicev1/tst_datadevicev1.cpp b/tests/auto/client/datadevicev1/tst_datadevicev1.cpp diff --git a/tests/auto/client/datadevicev1/tst_datadevicev1.cpp b/tests/auto/client/datadevicev1/tst_datadevicev1.cpp
index 1568b3b9..067410d0 100644 index 1568b3b96..067410d08 100644
--- a/tests/auto/client/datadevicev1/tst_datadevicev1.cpp --- a/tests/auto/client/datadevicev1/tst_datadevicev1.cpp
+++ b/tests/auto/client/datadevicev1/tst_datadevicev1.cpp +++ b/tests/auto/client/datadevicev1/tst_datadevicev1.cpp
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
@@ -2863,7 +2749,7 @@ index 1568b3b9..067410d0 100644
class DataDeviceCompositor : public DefaultCompositor { class DataDeviceCompositor : public DefaultCompositor {
public: public:
diff --git a/tests/auto/client/seatv5/tst_seatv5.cpp b/tests/auto/client/seatv5/tst_seatv5.cpp diff --git a/tests/auto/client/seatv5/tst_seatv5.cpp b/tests/auto/client/seatv5/tst_seatv5.cpp
index 9312c2e5..2ea382f1 100644 index 9312c2e5d..2ea382f1c 100644
--- a/tests/auto/client/seatv5/tst_seatv5.cpp --- a/tests/auto/client/seatv5/tst_seatv5.cpp
+++ b/tests/auto/client/seatv5/tst_seatv5.cpp +++ b/tests/auto/client/seatv5/tst_seatv5.cpp
@@ -73,6 +73,7 @@ private slots: @@ -73,6 +73,7 @@ private slots:
@@ -2910,7 +2796,7 @@ index 9312c2e5..2ea382f1 100644
QCOMPOSITOR_TEST_MAIN(tst_seatv5) QCOMPOSITOR_TEST_MAIN(tst_seatv5)
#include "tst_seatv5.moc" #include "tst_seatv5.moc"
diff --git a/tests/auto/client/shared/coreprotocol.cpp b/tests/auto/client/shared/coreprotocol.cpp diff --git a/tests/auto/client/shared/coreprotocol.cpp b/tests/auto/client/shared/coreprotocol.cpp
index 0d988521..53e12291 100644 index 0d9885216..53e122910 100644
--- a/tests/auto/client/shared/coreprotocol.cpp --- a/tests/auto/client/shared/coreprotocol.cpp
+++ b/tests/auto/client/shared/coreprotocol.cpp +++ b/tests/auto/client/shared/coreprotocol.cpp
@@ -185,6 +185,8 @@ void Output::output_bind_resource(QtWaylandServer::wl_output::Resource *resource @@ -185,6 +185,8 @@ void Output::output_bind_resource(QtWaylandServer::wl_output::Resource *resource
@@ -2937,7 +2823,7 @@ index 0d988521..53e12291 100644
{ {
auto serial = m_seat->m_compositor->nextSerial(); auto serial = m_seat->m_compositor->nextSerial();
diff --git a/tests/auto/client/shared/coreprotocol.h b/tests/auto/client/shared/coreprotocol.h diff --git a/tests/auto/client/shared/coreprotocol.h b/tests/auto/client/shared/coreprotocol.h
index a1af137a..00c439e1 100644 index a1af137a1..00c439e18 100644
--- a/tests/auto/client/shared/coreprotocol.h --- a/tests/auto/client/shared/coreprotocol.h
+++ b/tests/auto/client/shared/coreprotocol.h +++ b/tests/auto/client/shared/coreprotocol.h
@@ -158,7 +158,7 @@ class WlCompositor : public Global, public QtWaylandServer::wl_compositor @@ -158,7 +158,7 @@ class WlCompositor : public Global, public QtWaylandServer::wl_compositor
@@ -2968,7 +2854,7 @@ index a1af137a..00c439e1 100644
Seat *m_seat = nullptr; Seat *m_seat = nullptr;
}; };
diff --git a/tests/auto/client/shared_old/mockcompositor.cpp b/tests/auto/client/shared_old/mockcompositor.cpp diff --git a/tests/auto/client/shared_old/mockcompositor.cpp b/tests/auto/client/shared_old/mockcompositor.cpp
index a415cbf5..b1d3d07d 100644 index a415cbf56..b1d3d07d5 100644
--- a/tests/auto/client/shared_old/mockcompositor.cpp --- a/tests/auto/client/shared_old/mockcompositor.cpp
+++ b/tests/auto/client/shared_old/mockcompositor.cpp +++ b/tests/auto/client/shared_old/mockcompositor.cpp
@@ -342,7 +342,7 @@ Compositor::Compositor(MockCompositor *mockCompositor) @@ -342,7 +342,7 @@ Compositor::Compositor(MockCompositor *mockCompositor)
@@ -2981,7 +2867,7 @@ index a415cbf5..b1d3d07d 100644
m_data_device_manager.reset(new DataDeviceManager(this, m_display)); m_data_device_manager.reset(new DataDeviceManager(this, m_display));
diff --git a/tests/auto/client/shared_old/mocksurface.cpp b/tests/auto/client/shared_old/mocksurface.cpp diff --git a/tests/auto/client/shared_old/mocksurface.cpp b/tests/auto/client/shared_old/mocksurface.cpp
index e9df5f90..c3246e4a 100644 index e9df5f907..c3246e4a8 100644
--- a/tests/auto/client/shared_old/mocksurface.cpp --- a/tests/auto/client/shared_old/mocksurface.cpp
+++ b/tests/auto/client/shared_old/mocksurface.cpp +++ b/tests/auto/client/shared_old/mocksurface.cpp
@@ -125,6 +125,16 @@ void Surface::surface_damage(Resource *resource, @@ -125,6 +125,16 @@ void Surface::surface_damage(Resource *resource,
@@ -3002,7 +2888,7 @@ index e9df5f90..c3246e4a 100644
uint32_t callback) uint32_t callback)
{ {
diff --git a/tests/auto/client/shared_old/mocksurface.h b/tests/auto/client/shared_old/mocksurface.h diff --git a/tests/auto/client/shared_old/mocksurface.h b/tests/auto/client/shared_old/mocksurface.h
index 949dc23d..d176837e 100644 index 949dc23dd..d176837e7 100644
--- a/tests/auto/client/shared_old/mocksurface.h --- a/tests/auto/client/shared_old/mocksurface.h
+++ b/tests/auto/client/shared_old/mocksurface.h +++ b/tests/auto/client/shared_old/mocksurface.h
@@ -65,6 +65,8 @@ protected: @@ -65,6 +65,8 @@ protected:
@@ -3015,7 +2901,7 @@ index 949dc23d..d176837e 100644
uint32_t callback) override; uint32_t callback) override;
void surface_commit(Resource *resource) override; void surface_commit(Resource *resource) override;
diff --git a/tests/auto/client/xdgoutput/tst_xdgoutput.cpp b/tests/auto/client/xdgoutput/tst_xdgoutput.cpp diff --git a/tests/auto/client/xdgoutput/tst_xdgoutput.cpp b/tests/auto/client/xdgoutput/tst_xdgoutput.cpp
index 80429608..68e8d77a 100644 index 20f762e06..2a0cad1de 100644
--- a/tests/auto/client/xdgoutput/tst_xdgoutput.cpp --- a/tests/auto/client/xdgoutput/tst_xdgoutput.cpp
+++ b/tests/auto/client/xdgoutput/tst_xdgoutput.cpp +++ b/tests/auto/client/xdgoutput/tst_xdgoutput.cpp
@@ -55,6 +55,7 @@ private slots: @@ -55,6 +55,7 @@ private slots:
@@ -3027,7 +2913,7 @@ index 80429608..68e8d77a 100644
void tst_xdgoutput::cleanup() void tst_xdgoutput::cleanup()
@@ -134,5 +135,39 @@ void tst_xdgoutput::changeGeometry() @@ -134,5 +135,39 @@ void tst_xdgoutput::changeGeometry()
exec([=] { remove(output(1)); }); exec([&] { remove(output(1)); });
} }
+void tst_xdgoutput::outputCreateEnterRace() +void tst_xdgoutput::outputCreateEnterRace()
@@ -3067,7 +2953,7 @@ index 80429608..68e8d77a 100644
QCOMPOSITOR_TEST_MAIN(tst_xdgoutput) QCOMPOSITOR_TEST_MAIN(tst_xdgoutput)
#include "tst_xdgoutput.moc" #include "tst_xdgoutput.moc"
diff --git a/tests/auto/client/xdgshell/tst_xdgshell.cpp b/tests/auto/client/xdgshell/tst_xdgshell.cpp diff --git a/tests/auto/client/xdgshell/tst_xdgshell.cpp b/tests/auto/client/xdgshell/tst_xdgshell.cpp
index 2277bbb8..afbeef53 100644 index 1c23728b2..f2181fd69 100644
--- a/tests/auto/client/xdgshell/tst_xdgshell.cpp --- a/tests/auto/client/xdgshell/tst_xdgshell.cpp
+++ b/tests/auto/client/xdgshell/tst_xdgshell.cpp +++ b/tests/auto/client/xdgshell/tst_xdgshell.cpp
@@ -31,6 +31,7 @@ @@ -31,6 +31,7 @@
@@ -3109,7 +2995,7 @@ index 2277bbb8..afbeef53 100644
+ Qt::WindowActive)); // Just make sure it eventually get's set correctly + Qt::WindowActive)); // Just make sure it eventually get's set correctly
const QSize screenSize(640, 480); const QSize screenSize(640, 480);
const uint maximizedSerial = exec([=] { const uint maximizedSerial = exec([&] {
@@ -186,6 +192,7 @@ void tst_xdgshell::configureStates() @@ -186,6 +192,7 @@ void tst_xdgshell::configureStates()
QCOMPARE(window.windowStates(), Qt::WindowNoState); QCOMPARE(window.windowStates(), Qt::WindowNoState);
QCOMPARE(window.frameGeometry().size(), windowedSize); QCOMPARE(window.frameGeometry().size(), windowedSize);