1. 15 Jul, 2020 3 commits
  2. 14 Jul, 2020 2 commits
  3. 13 Jul, 2020 1 commit
  4. 08 Jul, 2020 2 commits
  5. 24 Jun, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Rename buffer-specific surface properties · 47f80b99
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      The buffer scale and the buffer transform property specify transforms
      that had been applied to the buffer's contents. Neither one of those
      properties apply to the surface, in other words the buffer transform
      property doesn't indicate that the surface was rotated or flipped or both.
      This change doesn't gain anything in terms of new features, etc. It just
      attempts to make things more clear.
  6. 19 Jun, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Introduce surface-to-buffer and buffer-to-surface matrices · 4d210a94
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      The compositor needs to monitor changes in the mapping between the
      surface local coordinates and the buffer coordinates because texture
      coordinates correspond to the latter. One way to do it is to monitor
      things such as the surface size, the buffer size, the buffer scale,
      etc. The main problem with doing so is that there are so many factors
      that contribute to how mapping between the surface local coordinate
      space and the buffer coordinate space is performed.
      In order to provide a generic way for monitoring changes in the mapping
      between the surface local coordinate space and the buffer coordinate
      space, this patch introduces two new matrices. The first one specifies
      how the surface-local coordinates are mapped to buffer coordinates, and
      the other one specifies how to map the buffer coordinates to surface
      local coordinates.
      With the new two matrices, the compositor has a generic way to get
      notified when it has to re-compute texture coordinates.
  7. 15 Jun, 2020 1 commit
  8. 02 Jun, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Add support for the wp_viewporter protocol · b9381012
      Vlad Zahorodnii authored
      The wp_viewporter compositor extension allows clients to crop and scale
      their surface. It can be useful for applications such as video players
      because it may potentially reduce their power usage.
  9. 01 Jun, 2020 3 commits
    • Vlad Zahorodnii's avatar
      xdg-shell: Rewrite wrappers for the xdg-shell protocol · a8cfb02d
      Vlad Zahorodnii authored
      The current xdg-shell wrappers don't match existing abstractions in the
      xdg-shell protocol well, which makes it more difficult to refactor code
      that is responsible for managing configure events and geometry in kwin.
      Given that the xdg_decoration and the xdg_shell protocols are tightly
      coupled together, I had to rewrite our wrappers for the xdg_decoration
      protocol as well.
    • Vlad Zahorodnii's avatar
      xdg-shell: Drop support for v6 · 1f20e1b8
      Vlad Zahorodnii authored
      It's been deprecated for quite a while and all major toolkit already
      support xdg_wm_base.
    • Vlad Zahorodnii's avatar
      xdg-shell: Drop support for v5 · b3c7f9ab
      Vlad Zahorodnii authored
      It's been deprecated for quite a while and all major toolkits already
      support xdg_wm_base.
  10. 31 May, 2020 1 commit
  11. 29 May, 2020 2 commits
  12. 28 May, 2020 1 commit
  13. 26 May, 2020 3 commits
    • David Edmundson's avatar
      Add DataControl iface · d8b553e7
      David Edmundson authored
      This patch makes use of wlroot's DataControl interface to support
      clipboard management.
      Unlike wl_data_device clipboards are sent on every change to all
      If the data device has a selection set it updates immediately.
      Because it was started a year ago it uses the existing style of
      wrapping objects. The unit test uses the new approach.
      Test Plan:
      Updated kwin
      used wlroot's wl-copy, wl-paste which are xclip replacements to
      show that the clipboard updated correctly
      Reviewers: #kwin
      Differential Revision: https://phabricator.kde.org/D29330
    • David Edmundson's avatar
      Manage active selection as active DataSource than DataDevice · f9da1809
      David Edmundson authored
      A DataDevice will have zero or one active DataSource as the seclection.
      In the existing code we track the current data device then update it to
      the newest data device
      when the source inside a data device changes.
      If we store the active data source inside Seat instead of the device
      everything becomes
      somewhat simpler and safer.
      An entire unit test vanishes as that case of an externally set
      DataDevice with no source
      can no longer happen.
      There's also a lot of duplication that's been merged in this patch so we
      have one path.
      There are some technical behavioural changes in particular we do cleanup
      when the
      source vanishes rather than the data device, but if anything that seems
      safer and more correct.
      It's a precursor for introducing an abstraction class round the source
      without needing to meddle
      with too much code.
      Test Plan: Relevant unit tests passed, ran with it for a while with no
      Reviewers: #kwin
      Differential Revision: https://phabricator.kde.org/D29328
    • David Edmundson's avatar
      [BlurInterface] Port to the new approach · 2189579d
      David Edmundson authored and David Edmundson's avatar David Edmundson committed
      BlurInterface always used to be my go-to template when starting a new
      protocol, we may as well make it up-to-date with the generation.
      Code is reduced by a third.
  14. 20 May, 2020 2 commits
  15. 18 May, 2020 1 commit
  16. 04 May, 2020 1 commit
  17. 30 Apr, 2020 1 commit
  18. 29 Apr, 2020 2 commits
  19. 24 Apr, 2020 1 commit
    • David Edmundson's avatar
      Add wrapper for wl_global_remove · c557cdba
      David Edmundson authored
      Removes the Global from the registry, but does not delete the underlying
      Removal of a global is racey in wayland.
      A client could be trying to bind at that moment.
      Typically globals are static for the lifespan of the compositor, however
      there are exceptions
      For those cases this call will can remove the global from the registry,
      but still keep the wl_global instance alive
      and handling bind requests.
      The compositor can then remove the Global wrapper (this object) deleting
      the wl_global after an arbitrary delay or
      keep it around for re-use for the duration of the compositor.
      Test Plan:
      Unit test
      Made blur global outlive BlurEffect - no longer disconnects plasma on config changes
      Reviewers: #plasma, apol
      Reviewed By: apol
      Subscribers: kde-frameworks-devel
      Tags: #frameworks
      Differential Revision: https://phabricator.kde.org/D28883
  20. 17 Apr, 2020 1 commit
    • David Edmundson's avatar
      [autotests] Optimistic attempt to fix RemoteAccessTest reilability · 1b141294
      David Edmundson authored
      In this test we are waiting on 4 events. 2 things via 2 threads. It was
      This patch avoids hardcoding a bunch of ifs() handling recieving
      different orders, by waiting for both events.
      We can't use QTRY_COMPARE as ConnectionThread does magic things with
      QCoreApplication::eventDispatcher which don't work quite the same.
      This is a bit of a shot in the dark. It passes 100% of the time locally,
      lets see what CI manages to do :)
      Test Plan: Ran test :)
      Reviewers: #kwin, zzag
      Reviewed By: #kwin, zzag
      Subscribers: zzag, kde-frameworks-devel
      Tags: #frameworks
      Differential Revision: https://phabricator.kde.org/D28892
  21. 30 Mar, 2020 1 commit
    • Aleix Pol Gonzalez's avatar
      Fix warnings · 3a7f50d5
      Aleix Pol Gonzalez authored
      Remove unused variables and members.
      We were often storing the q of classes without ever needing them. I'd
      just do it when it's useful. We do it in the private class so it can
      always be added, removes boilerplate code.
      Don't use std::move when returning temporary QImage. The compiler is
      smart enough to know to do it but produces the warning "moving a
      temporary object prevents copy elision".
      Remove unused lambda captured variables.
      Test Plan: Getting much cleaner build logs
      Reviewers: #frameworks, #kwin, zzag
      Reviewed By: #kwin, zzag
      Subscribers: zzag, kde-frameworks-devel
      Tags: #frameworks
      Differential Revision: https://phabricator.kde.org/D28442
  22. 24 Mar, 2020 2 commits
  23. 20 Mar, 2020 1 commit
  24. 19 Mar, 2020 2 commits
    • Aleix Pol Gonzalez's avatar
      Provide an implementation for the tablet interface · a009c8c0
      Aleix Pol Gonzalez authored
      Implements the necessary classes to have proper support for the tablet and pen.
      Doesn't implement yet the ring/slider/totem bits.
      Test Plan:
      Used it with Plasma and GTK clients, together with the kwin patch I'll submit soon.
      Also I added a test.
      Reviewers: #kwin, #frameworks, zzag, davidedmundson
      Reviewed By: #kwin, zzag, davidedmundson
      Subscribers: davidedmundson, zzag, kde-frameworks-devel
      Tags: #frameworks
      Differential Revision: https://phabricator.kde.org/D26858
    • Vlad Zahorodnii's avatar
      Pass a dedicated fd to each keyboard for the xkb keymap · 6bfa71d8
      Vlad Zahorodnii authored
      To better isolate the clients from each other eachh KeyboardInterface
      creates it's own dedicated temporary file and sends the fd for this
      temporary file to the client. This means the memory for the keymap is no
      longer shared between all clients, every client has an own copy.
      To support this the existing API to set the keymap is deprecated and
      replaced by a new method setKeymapData which takes the content of the
      keymap as a byte array. The now deprecated method which takes a file
      descriptor is changed to use the new setKeymapData method. For that it
      reads the content of the file.
      The implementation in KeyboardInterface to create the file descriptor is
      based on the implementation of KWin. As I implemented the change in KWin
      (see 3b4c508ee36ac74c37e77fcaa14d106397ad2994) it is not a problem from
      GPL vs LGPL perspective.
      The change includes test cases to verify that the content of the keymap
      is properly passed to the client and that the memory is no longer shared.
      BUG: 381674
      Reviewers: #kwin, #frameworks, davidedmundson, zzag
      Reviewed By: #kwin, zzag
      Subscribers: plasma-devel, kde-frameworks-devel
      Tags: #frameworks
      Differential Revision: https://phabricator.kde.org/D14910
  25. 16 Mar, 2020 1 commit
  26. 06 Feb, 2020 1 commit
  27. 30 Dec, 2019 1 commit