This commit is contained in:
Vlad Zahorodnii 2024-04-03 13:18:33 +03:00
parent bdba53d79e
commit e818250028
2 changed files with 1 additions and 36 deletions

View File

@ -79,9 +79,6 @@ QWaylandLayerSurface::QWaylandLayerSurface(QWaylandLayerShellIntegration *shell,
QWaylandLayerSurface::~QWaylandLayerSurface()
{
if (m_waitForSyncCallback) {
wl_callback_destroy(m_waitForSyncCallback);
}
destroy();
}
@ -177,7 +174,6 @@ void QWaylandLayerSurface::setWindowGeometry(const QRect &geometry)
size.setHeight(0);
}
set_size(size.width(), size.height());
requestWaylandSync();
}
bool QWaylandLayerSurface::requestActivate()
@ -228,34 +224,6 @@ void QWaylandLayerSurface::requestXdgActivationToken(quint32 serial)
connect(tokenProvider, &QWaylandXdgActivationTokenV1::done, tokenProvider, &QObject::deleteLater);
}
const wl_callback_listener QWaylandLayerSurface::syncCallbackListener = {
.done = [](void *data, struct wl_callback *callback, uint32_t time){
Q_UNUSED(time);
wl_callback_destroy(callback);
QWaylandLayerSurface *layerSurface = static_cast<QWaylandLayerSurface *>(data);
layerSurface->m_waitForSyncCallback = nullptr;
layerSurface->sendExpose();
}
};
void QWaylandLayerSurface::requestWaylandSync()
{
if (m_waitForSyncCallback) {
return;
}
m_waitForSyncCallback = wl_display_sync(m_window->display()->wl_display());
wl_callback_add_listener(m_waitForSyncCallback, &syncCallbackListener, this);
}
void QWaylandLayerSurface::handleWaylandSyncDone()
{
if (!window()->isExposed()) {
return;
}
sendExpose();
}
void QWaylandLayerSurface::sendExpose()
{
#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0)

View File

@ -30,7 +30,7 @@ public:
bool isExposed() const override
{
return m_configured && !m_waitForSyncCallback;
return m_configured;
}
void attachPopup(QtWaylandClient::QWaylandShellSurface *popup) override;
@ -63,9 +63,6 @@ private:
bool m_configured = false;
bool m_configuring = false;
static const wl_callback_listener syncCallbackListener;
struct wl_callback *m_waitForSyncCallback = nullptr;
};
}