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

Vlad Zagorodniy noreply at phabricator.kde.org
Thu Sep 5 20:00:26 BST 2019


zzag created this revision.
zzag added a reviewer: KWin.
Herald added a project: Frameworks.
Herald added a subscriber: kde-frameworks-devel.
zzag requested review of this revision.

REVISION 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.

REPOSITORY
  R127 KWayland

BRANCH
  surface-role

REVISION DETAIL
  https://phabricator.kde.org/D23745

AFFECTED FILES
  autotests/client/test_xdg_shell_stable.cpp
  autotests/client/test_xdg_shell_v6.cpp
  src/server/CMakeLists.txt
  src/server/generic_shell_surface_p.h
  src/server/shell_interface.cpp
  src/server/surface_interface.cpp
  src/server/surface_interface.h
  src/server/surface_interface_p.h
  src/server/surfacerole.cpp
  src/server/surfacerole_p.h
  src/server/xdgshell_interface.cpp
  src/server/xdgshell_interface.h
  src/server/xdgshell_interface_p.h
  src/server/xdgshell_stable_interface.cpp
  src/server/xdgshell_v5_interface.cpp
  src/server/xdgshell_v6_interface.cpp

To: zzag, #kwin
Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20190905/328d8e1d/attachment.html>


More information about the Kde-frameworks-devel mailing list