1. 31 May, 2020 1 commit
  2. 29 May, 2020 2 commits
  3. 28 May, 2020 5 commits
  4. 26 May, 2020 4 commits
    • David Edmundson's avatar
      Add DataControl iface · d8b553e7
      David Edmundson authored
      Summary:
      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
      watchers.
      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
      d8b553e7
    • David Edmundson's avatar
      Introduce AbstractDataSource round the DataSourceInterface · e08b201b
      David Edmundson authored
      Summary:
      Clipboard managers and middle click paste are new protocols.
      
      We want to be able to copy from a clipboard manager to a regular
      clipboard and vice versa without duplicating loads of code.
      
      If we support kliper's "syncronise contents of the clipboard and
      selection" inside the compositor that would become an unmanageable amount
      of combinations.
      
      It also potentially allows the idea of our XWayland bridge not being a
      wayland client and simplifying that code.
      
      Test Plan: Unit test passes
      
      Reviewers: #kwin
      
      Subscribers: zzag
      
      Differential Revision: https://phabricator.kde.org/D29329
      e08b201b
    • David Edmundson's avatar
      Manage active selection as active DataSource than DataDevice · f9da1809
      David Edmundson authored
      Summary:
      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
      issue.
      
      Reviewers: #kwin
      
      Differential Revision: https://phabricator.kde.org/D29328
      f9da1809
    • David Edmundson's avatar
      [BlurInterface] Port to the new approach · 2189579d
      David Edmundson authored
      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.
      2189579d
  5. 25 May, 2020 1 commit
  6. 20 May, 2020 5 commits
  7. 18 May, 2020 3 commits
  8. 15 May, 2020 1 commit
  9. 14 May, 2020 1 commit
  10. 04 May, 2020 1 commit
  11. 01 May, 2020 2 commits
  12. 30 Apr, 2020 3 commits
  13. 29 Apr, 2020 2 commits
  14. 28 Apr, 2020 1 commit
  15. 27 Apr, 2020 1 commit
  16. 24 Apr, 2020 1 commit
    • David Edmundson's avatar
      Add wrapper for wl_global_remove · c557cdba
      David Edmundson authored
      Summary:
      Removes the Global from the registry, but does not delete the underlying
      wl_global
      
      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
      c557cdba
  17. 22 Apr, 2020 1 commit
  18. 17 Apr, 2020 1 commit
    • David Edmundson's avatar
      [autotests] Optimistic attempt to fix RemoteAccessTest reilability · 1b141294
      David Edmundson authored
      Summary:
      In this test we are waiting on 4 events. 2 things via 2 threads. It was
      unstable.
      
      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
      1b141294
  19. 11 Apr, 2020 1 commit
  20. 04 Apr, 2020 1 commit
  21. 30 Mar, 2020 1 commit
    • Aleix Pol Gonzalez's avatar
      Fix warnings · 3a7f50d5
      Aleix Pol Gonzalez authored
      Summary:
      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
      3a7f50d5
  22. 26 Mar, 2020 1 commit