diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2018-10-17 14:05:27 +0200 |
---|---|---|
committer | Johan Helsing <johan.helsing@qt.io> | 2018-10-18 12:11:27 +0000 |
commit | 4a328e3533f93ed65f9dc77f764b3cbe3c694266 (patch) | |
tree | c7e507cc991be9a01672972eff9ce88b56beade6 /src/compositor/compositor_api/qwaylandsurface_p.h | |
parent | 43d12496c684b5f2b08c6a8c0b994f06efc25712 (diff) |
Compositor: Emit signals after applying pending surface statev5.12.0-beta3
[ChangeLog][Compositor] Fixed a bug where some signals on QWaylandSurface were
emitted before all double buffered state had been applied.
Restructures QWaylandSurface::commit so no signals are emitted until all state
mutations are completed.
Adds a test to confirm that pending state is applied at once.
Also fixes opaqueRegion, which is documented to be double buffered as well, but
the old implementation set it immediately.
Change-Id: I1c4dfea7c83dd9ee84dc8c03e6d92e2924bf2fad
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Diffstat (limited to 'src/compositor/compositor_api/qwaylandsurface_p.h')
-rw-r--r-- | src/compositor/compositor_api/qwaylandsurface_p.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/compositor/compositor_api/qwaylandsurface_p.h b/src/compositor/compositor_api/qwaylandsurface_p.h index e0b624fce..df868de63 100644 --- a/src/compositor/compositor_api/qwaylandsurface_p.h +++ b/src/compositor/compositor_api/qwaylandsurface_p.h @@ -102,9 +102,6 @@ public: using QtWaylandServer::wl_surface::resource; - void setSize(const QSize &size); - void setBufferScale(int bufferScale); - void removeFrameCallback(QtWayland::FrameCallback *callback); void notifyViewsAboutDestruction(); @@ -155,6 +152,7 @@ public: //member variables bool newlyAttached; QRegion inputRegion; int bufferScale; + QRegion opaqueRegion; } pending; QPoint lastLocalMousePos; @@ -168,7 +166,7 @@ public: //member variables QRegion inputRegion; QRegion opaqueRegion; - QSize size; + QSize bufferSize; int bufferScale = 1; bool isCursorSurface = false; bool destroyed = false; |