1. 05 May, 2022 1 commit
  2. 20 Apr, 2022 1 commit
  3. 19 Apr, 2022 4 commits
  4. 16 Apr, 2022 1 commit
    • Xuetian Weng's avatar
      Fix race in wp_drm_lease_v1. · cdc9dcfb
      Xuetian Weng authored
      Basically this is a well known issue in wayland for globals. If bind
      comes after destroyed, it will raise a invalid global error. The common
      practice is to delay the destroy of global. Similar technique is also
      applied to wl_output.
      
      CCBUG: 452435
      cdc9dcfb
  5. 15 Apr, 2022 1 commit
    • Vlad Zahorodnii's avatar
      autotests: Fix TestWaylandSurface · 21a02c07
      Vlad Zahorodnii authored
      The API of SurfaceInterface was changed so it always maintains an opaque
      region.
      
      At the surface commit, if the attached buffer is opaque, the whole
      surface will be marked opaque. Otherwise, the specified opaque region
      will be intersected with the surface rect.
      21a02c07
  6. 13 Apr, 2022 1 commit
  7. 09 Apr, 2022 1 commit
  8. 08 Apr, 2022 2 commits
  9. 05 Apr, 2022 2 commits
    • David Edmundson's avatar
      Guard subsurface parent access. · 1d2424a5
      David Edmundson authored
      Whilst a subsurface must have a parent at the time of creation, the
      lifespan is not guaranteed afterwards.
      
      It's a weird thing for a client to do, but we need to not crash
      afterwards.
      
      If the parent surface is destroyed we should consider the surface
      unmapped.
      
      BUG: 452044
      1d2424a5
    • David Edmundson's avatar
      Fix layer shell reset · a5c55b68
      David Edmundson authored
      In the current form any client committing multiple times without
      attaching a buffer would unset the cached state and trigger an error.
      
      It's legal (though weird) to commit multiple times before attaching a
      buffer.
      
      We should only reset the state if we commit an empty buffer after having
      committed an existing buffer. This brings us in line with XdgShell.
      a5c55b68
  10. 29 Mar, 2022 1 commit
  11. 18 Mar, 2022 7 commits
  12. 15 Mar, 2022 2 commits
  13. 11 Mar, 2022 1 commit
  14. 03 Mar, 2022 2 commits
    • Vlad Zahorodnii's avatar
      Make pointer focus handling less error prone · 1a2dd727
      Vlad Zahorodnii authored
      Currently, if the pointer surface has to change between two surfaces,
      the compositor must do the following
      
          seat->setFocusedPointerSurface(nullptr);
          seat->notifyPointerMotion(newPos);
          seat->setFocusedPointerSurface(focus);
      
      The pointer motion is needed so the enter event has correct position,
      setFocusedPointerSurface(nullptr) is needed to avoid sending a bad
      motion event before the leave event.
      
      This change makes the pointer focus api less error prone by splitting
      setFocusedPointerSurface() in two functions - notifyPointerEnter() and
      notifyPointerLeave().
      
      notifyPointerEnter() takes new focus surface as well as the position
      where the pointer has entered the surface so the focus update can be
      atomic and without any corner cases.
      
      notifyPointerLeave() is used to clear pointer focus.
      1a2dd727
    • Marco Martin's avatar
      Add a methood to fore cancel any drag in progress · 7c09b463
      Marco Martin authored
      This is needed to cancel drags by pressing Escape which is
      resposibility of the compositor
      
      CCBUG:405267
      7c09b463
  15. 02 Mar, 2022 1 commit
  16. 23 Feb, 2022 1 commit
  17. 22 Feb, 2022 1 commit
  18. 21 Feb, 2022 1 commit
    • Aleix Pol Gonzalez's avatar
      seat: Do not assert on corner touch cases · 073058c9
      Aleix Pol Gonzalez authored
      Consider the cases where we get a touch move or touch up but we never
      received a touch down before.
      
      In the case of move, we'll simulate a touchDown right there and move on
      with reality.
      In the case of touch up, we'll just ignore the event as simulating could
      just be more confusing.
      
      BUG: 450338
      073058c9
  19. 12 Feb, 2022 1 commit
  20. 10 Feb, 2022 1 commit
  21. 27 Jan, 2022 1 commit
    • Arjen Hiemstra's avatar
      Fix drag and drop with touch between different windows · 79956bcc
      Arjen Hiemstra authored
      When dragging from one window to another, we may end up in a data_device
      that didn't get "data_device_start_drag". In that case, the internal
      touch point serial will be incorrect and we need to update it to the
      serial from the seat. The serial stored in the seat is changed to
      std::optional so we can properly check if it is set.
      79956bcc
  22. 25 Jan, 2022 1 commit
    • Vlad Zahorodnii's avatar
      Make data source objects "parentless" · 557b3825
      Vlad Zahorodnii authored
      The SeatInterface cleans up currentSelection and currentPrimarySelection
      when the AbstractDataSource::aboutToBeDestroyed() signal is emitted, but
      since the data source and primary data source have parent objects, they
      can be potentially destroyed without emitting the aboutToBeDestroyed()
      signal and thus leaving dangling pointers in SeatInterface.
      
      CCBUG: 449101
      557b3825
  23. 14 Jan, 2022 1 commit
  24. 13 Jan, 2022 3 commits
  25. 12 Jan, 2022 1 commit