wlroots 0.4

Brian Ashworth (4):
      xwm: stack below on map
      drm: do not modeset to current mode
      wlr_output: do not modeset to current mode
      backend/drm: fix modeset on drm fd resume

Connor E (2):
      Make popup inert when destroyed.
      Add build-*/ to gitignore.

Drew DeVault (2):
      Use freebsd/latest for FreeBSD sr.ht builds
      Revert "drm: do not modeset to current mode"

Geoff Greer (1):
      Add a wlr_output_set_subpixel()

Ivan Molodetskikh (2):
      data-control: add primary selection support
      Update data-control

Jan Beich (1):
      Add xcb-errors to FreeBSD build

Markus Ongyerth (1):
      Prevent NULL dereference in tablet_tool handler

Rouven Czerwinski (1):
      backend/drm: fix memory leak in realloc crtcs

Scott Anderson (1):
      backend/drm: Unset cursor on cleanup

Sebastian Krzyszkowiak (3):
      Post protocol error on invalid wl_surface scale
      rootston: don't try to maximize fullscreen surfaces
      rootston: surface_at: check for fullscreen surfaces in between TOP and OVERLAY layers

Uli Schlachter (1):
      xwm: Add _NET_CLIENT_LIST support

Vincent Vanlaer (3):
      Allow cursor render surface to be used as fb
      Copy cursor surface to secondary gpu if necessary
      Add workaround for hardware cursors on nouveau

emersion (21):
      Bump project version to 0.3
      data-device: destroy previous source when starting drag
      xdg-shell: destroy child popups on unmap
      Deprecate old protocols
      primary-selection-v1: copy from gtk-primary-selection
      surface: error out on invalid transform
      subsurface: add map/unmap events
      xwayland, data-device: fix surface state on unmap
      data-device: make old offers inert before sending selection
      backend/drm: fix NULL dereference when unsetting cursor
      xwayland: don't use SOCK_CLOEXEC
      xwayland: remove remaining SOCK_CLOEXEC
      data-device: refactor wlr_drag
      data-device: fix drag cleanup if not started
      rootston: cancel drag on invalid serial
      data-offer: send WL_DATA_OFFER_ERROR_INVALID_FINISH
      data-device: unbreak wl_data_source.cancel during drag-and-drop
      rootston: move part of desktop.c to view.c, use an interface for views
      rootston: add a view child interface
      rootston: make roots_view embedded and remove unions
      data-device: check if there's a source before sending dnd_finish

mnussbaum (1):
      Allow compositors to run as systemd user units