1. 05 Nov, 2020 1 commit
  2. 04 Nov, 2020 1 commit
    • Vlad Zahorodnii's avatar
      wayland: Fix binding of xwayland surfaces to windows · d91da41c
      Vlad Zahorodnii authored
      Surface ids are not unique across clients. If the underlying surface of
      an XdgToplevelClient is replaced with an Xwayland's surface, you may see
      weird results such as a desktop window having the contents of an X11
      window or even worse a crash.
      BUG: 428680
  3. 03 Nov, 2020 2 commits
  4. 02 Nov, 2020 1 commit
  5. 09 Oct, 2020 1 commit
  6. 01 Oct, 2020 1 commit
  7. 28 Sep, 2020 1 commit
  8. 04 Sep, 2020 2 commits
  9. 03 Sep, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Implement the layer-shell v1 protocol · d3cca65d
      Vlad Zahorodnii authored
      The layer-shell protocol allows wayland clients to create surfaces that
      can be used for building desktop environment components such as panels,
      notifications, etc.
      The support for the plasma-shell protocol will be dropped once plasma in
      all its entirety is ported to the layer-shell protocol.
  10. 20 Aug, 2020 1 commit
  11. 18 Aug, 2020 3 commits
  12. 07 Aug, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Prettify license headers · 4ce853e8
      Vlad Zahorodnii authored
    • Vlad Zahorodnii's avatar
      Switch to SPDX license markers · 1fb9f6f1
      Vlad Zahorodnii authored
      The main advantage of SPDX license identifiers over the traditional
      license headers is that it's more difficult to overlook inappropriate
      licenses for kwin, for example GPL 3. We also don't have to copy a
      lot of boilerplate text.
      In order to create this change, I ran licensedigger -r -c from the
      toplevel source directory.
  13. 06 Aug, 2020 1 commit
    • Aleix Pol Gonzalez's avatar
      XdgPopupClient can also be a PlasmaShellSurface · d71672a0
      Aleix Pol Gonzalez authored
      Debugging the panel thumbnails I realised that the setPosition calls
      didn't have an effect. This is probably not the only way to fix this bug
      but does fix the bug.
      At the moment it only brings the position from the interface.
  14. 05 Aug, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Survive Xwayland crashes · 19ad1725
      Vlad Zahorodnii authored
      If the Xwayland process crashes, it will bring down the entire session
      together with itself. Obviously, we don't want that. At least, Wayland
      clients should survive the crash.
      This change refactors relevant X11 parts to handle Xwayland crashes in a
      less fatal way.
      In order to handle Xwayland crashes better, a pair of start() and stop()
      methods had been introduced in the Xwayland class to allow starting and
      stopping the Xwayland process at any moment.
      If we detect that the Xwayland process has crashed, we will immediately
      stop the Xwayland server, which in its turn will deactivate the socket
      notifier and destroy all connected X11 clients. Unfortunately, a couple
      of subtle changes in X11Client::releaseWindow() and Unmanaged::release()
      had to be made to ensure that we are left with a valid state after the
      Xwayland server has been stopped.
  15. 28 Jul, 2020 7 commits
  16. 27 Jul, 2020 1 commit
  17. 23 Jul, 2020 2 commits
  18. 17 Jul, 2020 1 commit
  19. 15 Jul, 2020 1 commit
  20. 14 Jul, 2020 1 commit
  21. 13 Jul, 2020 2 commits
    • Vlad Zahorodnii's avatar
      [wayland] Drop pointless xwayland connection check · 5463a542
      Vlad Zahorodnii authored
      Xwayland can operate in two modes - rootless and rootful. When Xwayland
      operates in the rootful mode, a container window is created where all
      native X11 clients are placed. The container window is an xdg-toplevel
      surface. Most compositors are not interested in rootful mode.
      When Xwayland operates in the rootless mode, every X11 window is going
      to be represented with a Wayland surface that has no role assigned to it.
      In order to associate a wayland surface with an X11 window, Xwayland
      will send a client message of type WL_SURFACE_ID.
      Since we want Xwayland operate only in rootless mode, the check that
      verifies that a newly created xdg-toplevel surface belongs to Xwayland
      is pointless. We are never going to hit that case.
    • Adrien Faveraux's avatar
  22. 18 Jun, 2020 1 commit
    • Vlad Zahorodnii's avatar
      [wayland] Rework Xcursor theme loading code · cb7a9456
      Vlad Zahorodnii authored
      Currently in order to load an Xcursor theme, kwin uses libwayland api,
      which looks really awkward because of the way how the compositor talks
      to itself via the internal connection.
      The main motivation behind this change is to limit the usage of kwayland
      client api in kwin.
  23. 16 Jun, 2020 1 commit
  24. 15 Jun, 2020 1 commit
  25. 03 Jun, 2020 2 commits
    • David Edmundson's avatar
    • Vlad Zahorodnii's avatar
      [wayland] Add support for cropped and scaled surfaces · de2c4cb4
      Vlad Zahorodnii authored
      The wp_viewporter compositor extension allows clients to crop and scale
      their surfaces. It can be especially useful for applications wishing to
      reduce their power consumption, e.g. video players, etc.
      Given that there is no any direct relationship between the surface size
      and the buffer size anymore, we have to use specialized helper methods
      for converting coordinates from the surface-local space to buffer pixel
      space and vice versa.
  26. 01 Jun, 2020 1 commit
    • Vlad Zahorodnii's avatar
      [wayland] Destroy XdgToplevelClient and XdgPopupClient on unmap · df9e36ee
      Vlad Zahorodnii authored
      There are several ways to handle unmapping of a wl_surface. The first
      one is to destroy the associated AbstractClient instance. The second one
      is to transition the AbstractClient in a special state.
      The problem with the second approach is that it makes animations such as
      fade out more difficult to handle since effects in kwin are geared more
      towards the first approach (destroying AbstractClient).