mirror of
https://invent.kde.org/plasma/layer-shell-qt.git
synced 2025-06-04 01:28:35 -04:00
baz
This commit is contained in:
parent
bdba53d79e
commit
e818250028
@ -79,9 +79,6 @@ QWaylandLayerSurface::QWaylandLayerSurface(QWaylandLayerShellIntegration *shell,
|
|||||||
|
|
||||||
QWaylandLayerSurface::~QWaylandLayerSurface()
|
QWaylandLayerSurface::~QWaylandLayerSurface()
|
||||||
{
|
{
|
||||||
if (m_waitForSyncCallback) {
|
|
||||||
wl_callback_destroy(m_waitForSyncCallback);
|
|
||||||
}
|
|
||||||
destroy();
|
destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,7 +174,6 @@ void QWaylandLayerSurface::setWindowGeometry(const QRect &geometry)
|
|||||||
size.setHeight(0);
|
size.setHeight(0);
|
||||||
}
|
}
|
||||||
set_size(size.width(), size.height());
|
set_size(size.width(), size.height());
|
||||||
requestWaylandSync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QWaylandLayerSurface::requestActivate()
|
bool QWaylandLayerSurface::requestActivate()
|
||||||
@ -228,34 +224,6 @@ void QWaylandLayerSurface::requestXdgActivationToken(quint32 serial)
|
|||||||
connect(tokenProvider, &QWaylandXdgActivationTokenV1::done, tokenProvider, &QObject::deleteLater);
|
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()
|
void QWaylandLayerSurface::sendExpose()
|
||||||
{
|
{
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0)
|
#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0)
|
||||||
|
@ -30,7 +30,7 @@ public:
|
|||||||
|
|
||||||
bool isExposed() const override
|
bool isExposed() const override
|
||||||
{
|
{
|
||||||
return m_configured && !m_waitForSyncCallback;
|
return m_configured;
|
||||||
}
|
}
|
||||||
void attachPopup(QtWaylandClient::QWaylandShellSurface *popup) override;
|
void attachPopup(QtWaylandClient::QWaylandShellSurface *popup) override;
|
||||||
|
|
||||||
@ -63,9 +63,6 @@ private:
|
|||||||
|
|
||||||
bool m_configured = false;
|
bool m_configured = false;
|
||||||
bool m_configuring = false;
|
bool m_configuring = false;
|
||||||
|
|
||||||
static const wl_callback_listener syncCallbackListener;
|
|
||||||
struct wl_callback *m_waitForSyncCallback = nullptr;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user