Use a correct serial for xdg_surface.ack_configure
Previous pendingConfigureSerial can be overwritten regardless of the current configuration. With this patch, the client surface can use correct serial for xdg_surface.ack_configure. Fixes: QTBUG-95962 Pick-to: 6.2 6.1 6.0 5.15 Change-Id: I849d2daf4acc8ef6e7f8528af9c5a57f671f43e6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
parent
caded7fb85
commit
2bd5d5f2be
@ -342,15 +342,16 @@ bool QWaylandXdgSurface::handleExpose(const QRegion ®ion)
|
|||||||
|
|
||||||
void QWaylandXdgSurface::applyConfigure()
|
void QWaylandXdgSurface::applyConfigure()
|
||||||
{
|
{
|
||||||
Q_ASSERT(m_pendingConfigureSerial != 0);
|
// It is a redundant ack_configure, so skipped.
|
||||||
|
if (m_pendingConfigureSerial == m_appliedConfigureSerial)
|
||||||
|
return;
|
||||||
|
|
||||||
if (m_toplevel)
|
if (m_toplevel)
|
||||||
m_toplevel->applyConfigure();
|
m_toplevel->applyConfigure();
|
||||||
|
m_appliedConfigureSerial = m_pendingConfigureSerial;
|
||||||
|
|
||||||
m_configured = true;
|
m_configured = true;
|
||||||
ack_configure(m_pendingConfigureSerial);
|
ack_configure(m_appliedConfigureSerial);
|
||||||
|
|
||||||
m_pendingConfigureSerial = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QWaylandXdgSurface::wantsDecorations() const
|
bool QWaylandXdgSurface::wantsDecorations() const
|
||||||
|
@ -156,6 +156,7 @@ private:
|
|||||||
bool m_configured = false;
|
bool m_configured = false;
|
||||||
QRegion m_exposeRegion;
|
QRegion m_exposeRegion;
|
||||||
uint m_pendingConfigureSerial = 0;
|
uint m_pendingConfigureSerial = 0;
|
||||||
|
uint m_appliedConfigureSerial = 0;
|
||||||
|
|
||||||
friend class QWaylandXdgShell;
|
friend class QWaylandXdgShell;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user