1. 14 Oct, 2020 1 commit
  2. 13 Oct, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Properly handle destruction of XdgOutputV1Interface · 3987c0ae
      Vlad Zahorodnii authored
      The xdg-output spec omits whether the compositor has to destroy all xdg-
      output resources when the associated wl_output global is removed.
      
      This means that no xdg-output resource should be destroyed unless the
      client has called the destructor request; otherwise the client may panic
      due to protocol errors.
      
      Starting with Qt 5.15.2, it's okay to destroy generated wrapper objects
      without destroying associated resources. Destructor requests will be
      handled behind the scenes for inert and orphaned resources by code that
      is generated by qtwaylandscanner.
      
      BUG: 426293
      3987c0ae
  3. 09 Oct, 2020 1 commit
  4. 08 Oct, 2020 1 commit
  5. 07 Oct, 2020 1 commit
    • Bhushan Shah's avatar
      text-input-v3: track commit counts per resource · 50761ce0
      Bhushan Shah authored
      If we track the commit counts at compositor global, this will fail
      horribly for anything other than the first text-input-v3 client, as for
      new client the serial count will not be what it expects in the done()
      request and it will simply consider events as outdated and will refuse
      to accept those events
      50761ce0
  6. 02 Oct, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Use global static variables to store protocol version · c7fe867e
      Vlad Zahorodnii authored
      s_version is used only to initialize a global so there is no point for
      storing protocol version in a static member field and use funky syntax
      in the cpp file to initialize it. This change also simplifies the code.
      c7fe867e
    • Vlad Zahorodnii's avatar
      Improve readability of code that destroys frame callback resources · 94730634
      Vlad Zahorodnii authored
      If a frame callback resource is destroyed, it will unregister itself
      from corresponding lists in current, pending, and cached state.
      
      However, this means that we need to be super duper careful when the
      compositor wants to destroy all frame callbacks. We need to make a copy
      of a frameCallbacks list; otherwise a call to removeOne() will
      invalidate iterators and the compositor may crash.
      
      Currently, that copy is made implicitly. Some people may see that code
      and add qAsConst() without realizing the consequences it will lead to.
      
      This change improves the readability of that code by making explicit
      copies of frameCallbacks in code that shuts down SurfaceInterface.
      94730634
  7. 01 Oct, 2020 2 commits
  8. 29 Sep, 2020 2 commits
  9. 28 Sep, 2020 1 commit
  10. 23 Sep, 2020 4 commits
  11. 21 Sep, 2020 4 commits
    • Vlad Zahorodnii's avatar
      Keep unreferenced buffers around · fcfdab06
      Vlad Zahorodnii authored
      One problem with delaying destruction of buffer objects is that the
      compositor may create a shadow that references defunct buffers.
      
      One way to fix that issue is to immediately destroy buffers. However,
      there is other way to address the issue - keep released buffers alive.
      
      If a buffer is kept alive by the client, then it will most likely be
      used again. It also simplifies buffer management.
      
      BUG: 425233
      fcfdab06
    • Vlad Zahorodnii's avatar
      Untangle SurfaceInterface and BufferInterface · 9f814c49
      Vlad Zahorodnii authored
      A wl_buffer object can be bound to multiple surfaces or none at all. So
      the BufferInterface::surface() property makes very little sense.
      9f814c49
    • Bhushan Shah's avatar
      Update version number for 5.20.80 · 091bef61
      Bhushan Shah authored
      GIT_SILENT
      091bef61
    • David Edmundson's avatar
      [DataOffer] Avoid calls on null DataSource · 6feeeb10
      David Edmundson authored
      A DataOffer can slightly outlive a DataSource; a client will still be
      told it's deleted but could call a method in a race.
      
      DataOfferInterface correctly checks for source being still valid, but
      nothing updates it when it gets deleted.
      
      BUG: 396308
      6feeeb10
  12. 17 Sep, 2020 3 commits
  13. 11 Sep, 2020 2 commits
  14. 05 Sep, 2020 1 commit
  15. 04 Sep, 2020 2 commits
  16. 03 Sep, 2020 4 commits
  17. 02 Sep, 2020 2 commits
  18. 27 Aug, 2020 1 commit
  19. 25 Aug, 2020 1 commit
    • David Edmundson's avatar
      Delete resources in XdgOutput teardown · 8bc82279
      David Edmundson authored
      Generated code typically cleans up resource objects when the client
      calls the relevant destructor.
      
      In multi-cast mode our wrapper can be deleted at any time, whilst a
      client resource exists any existing resources that have a pending
      message will then crash the compositor.
      
      Deleting resources ahead of time also resolves this. calls to this
      resource will no-op. The zxdg_output_v1::destroy_func will then be
      called to delete the Resource object.
      8bc82279
  20. 23 Aug, 2020 1 commit
  21. 21 Aug, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Post an error if the client attempts to create input panel surface for surface... · 8c0d27e0
      Vlad Zahorodnii authored
      Post an error if the client attempts to create input panel surface for surface that already has role
      
      If a client attempts to create an input panel surface for a wl_surface
      that already has a role assigned, we must post a protocol error or else
      the behavior of the input panel surface will be undefined.
      
      Posting an error of 0 is not really correct, but on the other hand the
      spec has no any error enums.
      8c0d27e0
  22. 20 Aug, 2020 1 commit
  23. 19 Aug, 2020 1 commit