Client: Always trigger a commit in flush
There are a few paths in wayland that require the client to always commit to apply changes or ack requests. We need this synchronized with any rendering so it is normally triggered with an expose or update event relying that this will always commit at the end. There is a path in QWidget code where if the window is not damaged we never call backingStore->beginPaint. If this doesn't happen we don't swap the front buffer, and the expose event will no-op. We want to avoid attaching in this case, but we should commit without attaching regardless to flush these events. This fixes an issue where Qt could fail to ack configure events which don't trigger updates. Pick-to: 6.8 Change-Id: Iaa606b0bf9fbbaefd3e67444cc768f95076967fe Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
This commit is contained in:
parent
6d3f6d3ae5
commit
0a8fe091f7
@ -740,7 +740,8 @@ void QWaylandWindow::commit(QWaylandBuffer *buffer, const QRegion &damage)
|
||||
{
|
||||
Q_ASSERT(isExposed());
|
||||
if (buffer->committed()) {
|
||||
qCDebug(lcWaylandBackingstore) << "Buffer already committed, ignoring.";
|
||||
mSurface->commit();
|
||||
qCDebug(lcWaylandBackingstore) << "Buffer already committed, not attaching.";
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user