Diffusion KWin 31ea780d7996

[wayland] Rework xdg-shell implementation

Authored by zzag on Feb 17 2020, 6:39 PM.

Description

[wayland] Rework xdg-shell implementation

Summary:
This change splits the XdgShellClient class to better match existing
abstractions in the xdg-shell protocol and fix a few issues related to
sending configure events.

In the new client classes, configure events are handled differently.
Instead of blocking configure events, we try to send them as late as
possible. Delaying configure events will let us merge changeMaximize()
for X11 clients and Wayland clients and it also fixes the bug where
we don't send the final configure event when user has finished resizing
a window.

Given that configure events are not sent immediately, XdgSurfaceClient
keeps the last requested frame geometry and the last requested client
geometry.

This patch doesn't intend to fix all issues in kwin's implementation of
the xdg-shell protocol. For example, we still handle surface unmapping
very poorly.

Test Plan: Tests pass.

Reviewers: KWin

Subscribers: kwin

Tags: KWin

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

Details

Committed
zzagJun 1 2020, 12:12 PM
Differential Revision
D27861: [wayland] Rework xdg-shell implementation
Parents
R108:076b8bc14ce5: [effects/zoom] Implement text caret tracking
Branches
Unknown
Tags
Unknown