1. 27 Apr, 2021 1 commit
  2. 14 Apr, 2021 2 commits
    • Jonas Ådahl's avatar
      Replace `unstable` with `staging` · 5381e39b
      Jonas Ådahl authored
      Time has told us that the effort going from `unstable` to `stable` is
      enough of a burdon meaning very few protocols are ever declared stable.
      
      To mitigate this, and thus avoid having protocols being "stuck" being
      "unstable" indefinitely, replace the "unstable" -> "stable" procedure
      with a "staging" -> "stable" procedure, where declaring a protocol
      stable does not involve any changes to any implementations.
      
      The only side effect of this is that version numbers are to forever be
      part of all interface names and protocol XML files.
      
      Closes: #30
      
      Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      Reviewed-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      5381e39b
    • Simon Ser's avatar
      xdg-foreign: add error enums · b1670b4d
      Simon Ser authored
      
      
      The protocol states that the client must provide xdg_toplevel surfaces,
      but doesn't specify protocol error values that can be sent by the
      compositor.
      Signed-off-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      b1670b4d
  3. 13 Apr, 2021 1 commit
    • Peter Hutterer's avatar
      pointer-gestures: correct description of pinch · 17bef0ed
      Peter Hutterer authored
      
      
      This is being picky, but "pinch/spread" is the physical gesture, zoom and
      rotate is the effect that clients provide in response to that gesture.
      Let's use pinch only here since spread is more ambiguous in english, as anyone
      who's ever had butter on their bread would know.
      
      Also, everything else is referring to it as pinch anyway, so zoom/rotate here
      is the odd one out.
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      17bef0ed
  4. 05 Apr, 2021 1 commit
  5. 31 Mar, 2021 2 commits
    • Simon Ser's avatar
      linux-dmabuf: clarify what mixed valid/INVALID modifiers mean · 3683a5eb
      Simon Ser authored
      This commit makes it clear that compositors can send valid modifiers and
      DRM_FORMAT_MOD_INVALID for a given format. This means that the compositor
      supports both implicit and explicit modifiers. See the warning further
      down:
      
      > Warning: It should be an error if the format/modifier pair was not
      > advertised with the modifier event. This is not enforced yet because
      > some implementations always accept DRM_FORMAT_MOD_INVALID. Also
      > version 2 of this protocol does not have the modifier event.
      
      Xwayland already requires compositors to send DRM_FORMAT_MOD_INVALID
      for importing buffers with an implicit modifier [1].
      
      In a future protocol version, it would be nice to make it a protocol
      error (or at least a soft failure) to use any format/modifier pair that
      wasn't advertised. A use-case for this is Vulkan compositors: the Vulkan
      DMA-BUF extensions require an explicit modifier and cannot import
      buffers which have an implicit modifier.
      
      [1]: https://gitlab.freedesktop.org/xorg/xserver/-/blob/6c51818a0f55282cbe5a870f58ca82ca45ee472d/hw/xwayland/xwayland-glamor-gbm.c#L328
      
      Signed-off-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      3683a5eb
    • Jonas Ådahl's avatar
      ci: Make the FDO_UPSTREAM_REPO variable global · 42da2294
      Jonas Ådahl authored
      ci-fairy doesn't know how to to look at $CI_MERGE_REQUEST_PROJECT_PATH
      right now, so if we don't manually set $FDO_UPSTREAM_REPO, ci-fairy will
      (without verbose logging turned on) silently fall back on the source
      repository project path for finding the branch point. This might fail if
      the owner of the source repository hasn't updated the `master` branch of
      their fork.
      
      Related: freedesktop/ci-templates#32
      
      Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      42da2294
  6. 26 Mar, 2021 6 commits
  7. 16 Feb, 2021 1 commit
    • Pekka Paalanen's avatar
      linux-dmabuf: no buffer errors on device disappearance · f899eff0
      Pekka Paalanen authored
      This was prompted by the discussion from
      https://lists.freedesktop.org/archives/dri-devel/2020-May/266611.html
      
      
      which is not the final wording.
      
      When a DRM device is hot-unplugged, particularly if it is the Wayland
      compositor's compositing GPU, EGL may start returning errors from trying to use
      the client's dmabuf. Or, if the client is rendering on another GPU which gets
      hot-unplugged, the dmabuf the compositor already has may start failing.
      
      Hot-unplug is an abrupt global action, and there is no way a client or a
      compositor could ensure they clean up before things start failing. It is not
      the client's fault, so the client should not get disconnected if already
      existing wl_buffer objects start failing. This patch add the wording to the
      protocol to this effect.
      
      The intention is that the compositor replaces the failed buffers with some
      placeholder content. There is no way this could be glitch-free. In its own pace
      the client should discover the DRM device is gone, clean up, and perhaps use
      something else. How exactly that should happen depends on the rendering API the
      client is using.
      
      This is a tiny step towards making DRM device hot-unplug not crash
      applications that wish to handle the unplug gracefully.
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.com>
      f899eff0
  8. 05 Jan, 2021 3 commits
  9. 03 Jan, 2021 2 commits
  10. 03 Nov, 2020 1 commit
    • Bhushan Shah's avatar
      text-input: document behavior regarding multiple text-inputs · 4ed0cafe
      Bhushan Shah authored
      
      
      Currently protocol does not specify what should happen if multiple
      text-inputs are created by same client, which is why this is more or
      less undefined behavior currently in compositor implementations.
      
      If client has created more than one text-input objects and surface owned
      by the client is focused, then compositor must send enter event to all
      text-input objects, in case of enable request however only one
      text-input must be enabled per client per seat.
      Signed-off-by: default avatarBhushan Shah <bshah@kde.org>
      4ed0cafe
  11. 15 Oct, 2020 1 commit
  12. 14 Oct, 2020 1 commit
  13. 19 Jun, 2020 1 commit
  14. 07 Apr, 2020 2 commits
  15. 29 Feb, 2020 6 commits
    • Jonas Ådahl's avatar
      configure.ac: Bump version to 1.20 · b0a25f26
      Jonas Ådahl authored
      
      Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      b0a25f26
    • Jonas Ådahl's avatar
      Makefile.am: Also distribute README.md, GOVERNANCE.md and MEMBERS.md · 035ffedd
      Jonas Ådahl authored
      
      
      README was distributed by default due to implicit autotools rules, so
      when we renamed to README.md, it stopped being included. While at it,
      also add the two other new files.
      Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      035ffedd
    • Jonas Ådahl's avatar
      configure.ac: Bump version to 1.19 · 8f6095f2
      Jonas Ådahl authored
      
      Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      8f6095f2
    • Jonas Ådahl's avatar
      xdg-shell: Add support for explicit popup repositioning · 26f494ed
      Jonas Ådahl authored
      
      
      This commit adds protocol additions making it possible to request that a
      popup should be repositioned according to a new xdg_positioner object.
      
      Explicit popup moving is done using a new request on xdg_popup:
      xdg_popup.reposition. What it does is change the parameters used for
      positioning a popup by providing a new xdg_positioner object. This
      request is coupled with a new event; xdg_popup.repositioned, sent
      together with the configure events (xdg_popup.configure and
      xdg_surface.configure) to notify about the completion of the reposition
      request. The reposition request also takes a token that is later passed
      via the repositioned event; this is done so that a client may determine
      for which reposition request the compositor has sent configure events.
      
      Synchronization between surfaces to avoid state application race
      condition are deliberately left out, and should be handled by an
      external protocol.
      
      To brief the compositor of the future dimension of the parent that the
      compositor should position the popup against, a
      xdg_positioner.set_parent_size request is added.
      
      Lastly, a request to couple a xdg_positioner object with a parent
      configure event is added (xdg_positioner.set_parent_configure) in
      order for a compositor to pair a popup reposition request with a pending
      configure event, and it's resulting window geometry. This is necessary
      to, for example, properly constrain a popup given a future parent state.
      An example of when this may be necessary is an interactive resize where
      both the toplevel position and the relative popup position changes.
      Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      Reviewed-by: Mike Blumenkrantz's avatarMike Blumenkrantz <michael.blumenkrantz@gmail.com>
      Reviewed-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      26f494ed
    • Jonas Ådahl's avatar
      xdg-shell: Add support for implicit popup repositioning · ebbad29e
      Jonas Ådahl authored
      
      
      This commit adds protocol additions making it possible to implicitly
      reposition an already mapped popup if the conditions for the constraint
      changed (e.g. toplevel moved).
      
      Implicit popup moving is done by setting a adjustment flag on the
      positioner used to create it that will cause the compositor to adjust
      the position as the conditions used to constrain it change.
      
      These changes may include, for example, changes in the position of the
      parent window or the geometry of the work area. To allow the client to
      update its content in response to the updated position, the client must
      ack the configure event, optionally with new content. Until the client
      acks this configure event, the existing positioner will continue to be
      used.
      
      Implicit repositioning by itself is racy regarding inter-surface
      synchronization of applied state. Inter-surface synchronization is
      deliberately left out of xdg-shell, and left to be handled externally.
      Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      Reviewed-by: Mike Blumenkrantz's avatarMike Blumenkrantz <michael.blumenkrantz@gmail.com>
      Reviewed-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      ebbad29e
    • Jonas Ådahl's avatar
      xdg-shell: Remove left-over paragraph from pre positioner versions · 2b0c87ea
      Jonas Ådahl authored
      
      
      It mentioned the now removed x, y parameters of xdg_surface.get_popup.
      The xdg_positioner now has the relevant documentation that was
      previously documented by the now removed paragraph.
      Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      Reviewed-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      2b0c87ea
  16. 25 Feb, 2020 1 commit
  17. 22 Jan, 2020 1 commit
  18. 18 Dec, 2019 1 commit
    • Simon Ser's avatar
      Convert plaintext documents to Markdown · 733de762
      Simon Ser authored
      
      
      This converts GOVERNANCE, MEMBERS and README to Markdown documents.
      These are only cosmetic changes, the actual contents and wording have
      been retained.
      
      GitLab pretty-prints Markdown and adds anchors. We can now add links
      from one document to another.
      
      Unfortunately GOVERNANCE lettered lists have been converted to numbered
      lists, because Markdown doesn't support the former.
      Signed-off-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      Closes: #3
      733de762
  19. 21 Nov, 2019 2 commits
  20. 20 Nov, 2019 2 commits
  21. 06 Sep, 2019 1 commit
  22. 25 Jul, 2019 1 commit