[server] Make double-buffered properties in xdg-shell double-buffered

Authored by zzag on Sep 5 2019, 10:57 AM.

Description

[server] Make double-buffered properties in xdg-shell double-buffered

Summary:
So far all double-buffered properties in our implementation of xdg-shell
weren't actually double-buffered. When a property setter is invoked, we
pray to the God hoping that the client committed associated surface.

This change introduces private SurfaceRole class. The new class provides
a way for SurfaceInterface to commit pending state of associated shell
surface.

The chosen architecture allows us to do more in the future. For example,
we could use SurfaceRole to prevent associating several roles to a single
wl_surface object, e.g. xdg-toplevel to a pointer surface, etc.

Test Plan: This change breaks support for client-side decorated clients in KWin.

Reviewers: KWin

Subscribers: kde-frameworks-devel

Tags: Frameworks

Differential Revision: https://phabricator.kde.org/D23745

Details

Committed
zzagNov 26 2019, 8:49 PM
Differential Revision
D23745: [server] Make double-buffered properties in xdg-shell double-buffered
Parents
R127:c4a49fbf2d5d: Add missing include for Qt 5.14 build
Branches
Unknown
Tags
Unknown