-
Vlad Zahorodnii authored
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
31ea780d