Skip to content
  • Martin Flöser's avatar
    Add support for xdg-shell · 53f27fee
    Martin Flöser authored
    Summary:
    This change introduces support for the unstable xdg-shell interface in
    the server. The implementation is based on version 5 of the unstable
    interface. This is the version used by toolkits like e.g. GTK.
    
    There is also a version 6 of the protocol under development which is
    incompatible. This makes it difficult to implement it in a backward
    compatible way.
    
    Because of that the implementation is a little bit different to other
    interfaces and inspired by the TextInput interfaces:
    On client side an XdgShell class is exposed which does not represent
    it directly. Instead it delegates everything to an XdgShellUnstableV5
    implementation. For the Surface/Popup the same is done.
    
    In the Registry it's possible to create an XdgShell and it accepts
    the XdgShellUnstableV5 and in future will accept XdgUnstableV6, etc.
    
    On server side it also follows the approach from TextInput. That is
    there is a version enum which gets passed to the factory method in
    Display. It currently supports only V5, but in future can be extended
    for V6. As there is lots of similar code between wl_shell, xdg_shell
    and in future xdg_shell_unstable_v6 a templated GenericShellInterface
    class is added which combines the common parts.
    
    Reviewers: #plasma_on_wayland
    
    Subscribers: plasma-devel
    
    Tags: #plasma_on_wayland
    
    Differential Revision: https://phabricator.kde.org/D2102
    53f27fee