Skip to content
wlroots 0.11.0

Aleksei Bavshin (1):
      xdg-shell: fix popups rendered outside of the screen

Andri Yngvason (15):
      virtual-pointer: Add request for mapping to specific output
      export-dmabuf: Schedule output frame on request
      export-dmabuf: Keep frame->output = NULL until frame is ready
      render: egl: Add utility functions for saving/restoring context
      render: Add wlr_renderer_blit_dmabuf()
      protocol: screencopy: Extend to report linux-dmabuf capability
      screencopy: Implement copying into linux-dmabuf
      examples: Add screencopy-dmabuf example
      render: Fix blit_dmabuf() breakage due to API change
      backend: drm: Fix dmabuf resource leak
      screencopy: Use correct constant for y-inversion
      render: gles2: Fix y-inversion in gles2_blit_dmabuf()
      screencopy: Use correct dmabuf to get y-inversion flag
      examples: screencopy-dmabuf: Fix y-inversion
      render: egl: Use current display to restore NULL context

Brian Ashworth (2):
      meson.build: update wayland requirement to 1.18
      wlr_keyboard_group: introduce enter and leave

David96 (1):
      Add wlr_surface_accepts_touch

Dorota Czaplejewicz (1):
      text_input_v3: Note features supported by the text field

Filip Sandborg (1):
      Fix uint32 overflow in fill_empty_gamma_table on Icelake platform

Greg Depoire--Ferrer (1):
      tinywl: Fix wrong anchor point while resizing a window

Greg V (1):
      xdg-shell: check for existing role before setting xdg_popup_surface_role

Guido Günther (4):
      Add wlr-output-power-management
      Implement wlr-output-power-management-v1
      examples: add output-power-management example client
      wlr_output_power_management_v1: Init output_power->link

Ilia Bozhinov (2):
      output-management: add current_configuration_dirty
      examples: make output-power-management oneshot by default

Isaac Freund (16):
      Send keyboard enter/leave on capability change
      Properly popluate keys array for enter on creation
      Send pointer enter/leave on capability change
      Return failure of wlr_renderer_init_wl_display()
      Return false on wlr_keyboard_set_keymap() failure
      tinywl: remove redundant create output global call
      Document the events of wlr_layer_surface
      tinywl: remove unused variables
      tinywl: handle request set selection
      layer shell: only send unmap on close if mapped
      Make wlr_xcursor_manager_load() return a bool
      layer-shell: handle serial wrapping overflow
      xdg-shell: handle serial wrapping overflow
      xdg-decoration: free old configure structs
      layer-shell: upgrade to v3, implement destructor
      layer-shell: remove unused surface list

Jan Beich (2):
      backend/session: allow GPU enumeration on FreeBSD
      xcursor: also look for cursor themes under ${datadir}/icons by default

Jan Staněk (1):
      Declare wlr_seat globals as extern

John Chadwick (1):
      xwm: end transfers when the requestor is destroyed

JonnyMako (1):
      backend/drm: fix missing cursor on external monitors with multi-GPU setup and nouveau

Julien Olivain (1):
      render/egl: include EGL/eglmesaext.h only if present

Kalyan Sriram (2):
      tinywl: fix geo_box bug in cursor resizing
      Don't send redundant capability updates

Kenny Levinsen (3):
      logind: Close fd before releasing device
      seat: Create inert objects for missing capabilities
      wlr_drag: Destroy drag after releasing grabs

Kirill Chibisov (1):
      xcursor: add xorg-x11 and cursors path to XCURSORPATH

Manuel Stoeckl (2):
      Fix output rotation direction
      output: fix output transform compositions

Michael Weiser (3):
      keyboard-shortcuts-inhibit: Implement the protocol
      keyboard-shortcuts-inhibit: Add client example
      idle-inhibit: Style and naming improvements

Rabit (1):
      Prevent memory leak in copypaste of the screencopy example

Rouven Czerwinski (4):
      backend/drm: add env variable to disable modifiers
      backend/drm: remove overzealous finish_drm_surface
      render: assert sane values for box functions
      surface: don't unset width and height in finalize

Scott Anderson (8):
      meson: Fix protocol includes for compositor examples
      examples: Fix compositor-examples
      wlr_surface: Post error if multiple role objects created
      backend/drm: introduce wlr_drm_fb
      backend/drm: don't have fallback atomic commits
      backend/drm: move atomic cursor code into pageflip code
      backend/drm: don't allow legacy to use direct scanout
      Remove libcap support

Scott Moreau (3):
      build: Add 'auto' to logind-provider combo option
      xwayland: Don't discard ready signals
      xwm: Destroy xwm on hangup or error

Simon Ser (129):
      build: replace version with soversion
      render: unconditionally disable implicit X11 includes
      meson: fix wayland-server minimum required version
      util: add wlr_output_destroy_safe
      output: don't destroy global immediately
      seat: don't destroy global immediately
      xwayland: ignore pointer focus changes
      backend/wayland: rename wl_seat.c to seat.c
      output: remove wlr_output_impl.schedule_frame
      backend/wayland: fix seat caps handling
      Introduce wlr_client_buffer
      output: add adaptive_sync_enabled property
      backend/x11: add support for adaptive_sync_enabled
      backend/drm: add support for adaptive_sync_enabled
      xwayland: use explicit indexes when initializing atom_map
      xwayland: remove duplicate _NET_WM_NAME entry
      xwayland: remove underscore prefix from atom names
      output: make wlr_output_schedule_frame set output->needs_frame
      output: don't send a needs_frame event if already sent
      util/log: improve time prefix
      render/gles2: remove duplicated format list
      buffer: remove unused wlr_client_buffer fields
      output: add comment about needs_frame in wlr_output_schedule_frame
      output: replace wlr_output.damage with a damage event
      backend/wayland: close keymap FD
      Gracefully handle inert wl_output resources
      buffer: add destroy event
      buffer: add a release event
      buffer: add width and height
      output: introduce wlr_output_test
      output: check buffer in wlr_output_test
      backend: reset EGL surface after buffer swap
      Add wlr_output_impl.rollback
      render/egl: make config attribs const
      backend: set EGL_RENDERABLE_TYPE and EGL_SURFACE_TYPE
      render/gles2: only call wlr_egl_bind_display if supported
      render: only expose linux-dmabuf if EGL extension is supported
      output: fix blurred hw cursors with fractional scaling
      output: check for buffer size compatibility in common code
      backend/wayland: check scan-out buffer is compatible in output_test
      output: fix maybe-uninitialized warning
      backend/multi: add backends at end of list
      build: use meson.override_dependency
      build: use dicts instead of get_variable
      build: use summary instead of message
      output_layout: improve docs
      render/drm_format_set: disallow DRM_FORMAT_INVALID
      render/gles2: add wlr_gles2_renderer_check_ext
      backend/headless: use FBOs instead of pbuffers
      backend/headless: add wlr_headless_backend_create_with_renderer
      render/texture: add width and height fields
      render/texture: make write_pixels optional
      backend/drm: strip alpha channel if necessary
      Remove .swp file added by mistake
      util/log: write log importance
      backend/drm: make page-flip error scarier
      examples/dmabuf-capture: use getopt
      backend/multi: handle backends depending on each other properly
      backend/headless: handle renderer destroy
      backend/drm: remove wlr_drm_interface.crtc_move_cursor
      backend/drm: remove unused fields
      backend/drm: remove mode argument to crtc_pageflip
      backend/drm: apply gamma LUT on page-flip
      backend/drm: rename crtc_pageflip to crtc_commit
      backend/drm: remove conn_enable from interface
      backend/drm: remove crtc_set_cursor from interface
      backend/drm: GAMMA_LUT_SIZE isn't atomic
      backend/drm: simplify atomic commit logic
      backend/drm: fix crash in session_signal
      backend/drm: remove missing cursor plane workaround
      backend/drm: fix combined modeset+enable commits
      backend/drm: disable cursor in dealloc_crtc
      backend/drm: print error in set_plane_props
      backend/drm: fix segfault in drm_crtc_page_flip
      output: make wlr_output_set_gamma atomic
      backend/drm: fix atomic commits when the GAMMA_LUT prop is missing
      Fix -Wreturn-type warnings
      render/egl: introduce wlr_egl_unset_current
      backend/drm: fix current EGL context on multi-GPU
      backend/drm: add missing wlr_egl_unset_current
      xwayland: split server
      xwayland: add option to disable WM
      render/egl: unset current context after swapping buffers
      backend/drm: rollback atomic blobs
      backend/drm: refuse to enable an output without a mode
      backend/drm: remove drm_connector_set_custom_mode
      backend/drm: remove enable_drm_connector
      backend/drm: make drm_connector_set_mode take a wlr_drm_connector
      backend/drm: nuke retry_pageflip
      backend/drm: introduce pending and current CRTC state
      backend/drm: don't set cursor if off-screen
      backend/drm: fix missing crtc->cursor NULL check
      Add comments for missing tablet tool entries
      backend/drm: rollback pending CRTC state on test commit
      backend/drm: make adaptive_sync atomic
      backend/drm: commit/rollback FBs in drm_crtc_commit
      backend/drm: drop extra wlr_output_update_enabled call
      backend/drm: always perform a CRTC commit in drm_connector_commit
      backend/wayland: fix spurious eglSwapBuffers failures
      render: stop making EGL context current in wlr_egl_init
      backend/drm: fix black screens when enabling output
      render: choose DMA-BUF texture target via eglQueryDmaBufModifiersEXT
      contributing: resource destroy handlers need to cleanup pointers
      contributing: add note about events that destroy objects
      backend/drm: fix stack overflow in dealloc_crtc
      buffer: document wlr_buffer_get_dmabuf DMA-BUF lifetime
      output: document wlr_output_export_dmabuf
      render/egl: explicit client extension handling
      examples/screencopy-dmabuf: call strncpy with maxlen - 1
      examples/fullscreen-shell: stop advertising linux-dmabuf unconditonally
      render/gles2: use .x/.y instead of .s/.t
      box: add wlr_fbox
      util/region: add wlr_region_scale_xy
      render: add wlr_render_subtexture_with_matrix
      surface: add wlr_surface_state.viewport
      surface: introduce wlr_surface_get_buffer_source_box
      viewporter: new protocol implementation
      surface: ignore viewport src rect on NULL buffer
      render/egl: print error name
      output: rename impl->rollback to rollback_render
      output: make rollback_render mandatory
      output: fix dangling renderer context after wlr_output_preferred_read_format
      backend/noop: add missing rollback_render output impl
      examples/pointer: fix wlr_renderer_end call order
      output: add backend docs
      backend/drm: fix DPMS on legacy interface
      backend/drm: fix typo in drm_surface_make_current arg
      backend/drm: check drm_surface_make_current return value
      Update version to 0.11.0

Simon Zeni (1):
      render/gles2: use glGetAttribLocation instead of hardcoded indices

Thomas Hebb (3):
      wlr_seat: Declare functions in the same order for pointer, keyboard, and touch
      wlr_seat: Clarify wording of non-grab-respecting function comments
      Allow keyboard and pointer grabs to hook clear_focus()

Tudor Brindus (19):
      backend/libinput: correctly populate x/y fields on tablet proximity in
      input/tablet: populate tool tip event position
      input/tablet: fix up updated axes after rotation
      input/tablet: clear focused surface on surface destroy
      wlr/types: use bitshifts for tablet axes enum
      backend/wayland: emit tablet tool axis events to the axis handler
      input/keyboard: expose keymap matching helper
      input/pointer: notify compositor when constraint region changes
      tablet: pass motion events to implicitly grabbed surface
      tablet: expose wlr_tablet_tool_v2_has_implicit_grab function
      util/log: use bright black rather than black for WLR_DEBUG
      xwayland: send focus change event unconditionally
      xwayland: add error-checking to `server_start_lazy`
      backend/wayland: scale tablet tool position into [0, 1] range
      util: fix and move `get_current_time_msec` into a util file
      util/time: de-duplicate `timespec_to_msec`
      util/time: move `timespec_sub` to time utilities
      input/keyboard: send modifiers on first keyboard enter
      input/pointer: add wlr_seat_pointer_wrap

Tudor Roman (1):
      seat: add selection event docs

Will Daly (1):
      Fix error when reconnecting external display

j-n-f (1):
      examples: fix improper use of `free`

r-c-f (1):
      seat: add check for NULL keyboard

xdavidwu (3):
      virtual-keyboard: add wlr_input_device_get_virtual_keyboard
      input-method: implement keyboard grabs
      examples/input-method-keyboard-grab: new example