Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

wlroots 0.15.0 #2983

Open
emersion opened this issue Jun 23, 2021 · 1 comment
Open

wlroots 0.15.0 #2983

emersion opened this issue Jun 23, 2021 · 1 comment
Labels

Comments

@emersion
Copy link
Member

emersion commented Jun 23, 2021

Planning for the next release.

Milestone: https://github.com/swaywm/wlroots/milestone/8


wlroots has migrated to gitlab.freedesktop.org. This issue has been moved to:

https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/2983

@swaywm swaywm locked and limited conversation to collaborators Jun 23, 2021
@emersion emersion added the meta label Jun 23, 2021
@emersion emersion pinned this issue Jun 23, 2021
@emersion
Copy link
Member Author

emersion commented Jun 24, 2021

Changes for packagers

Breaking changes for compositors

These changes can affect most compositors.

  • Stabilize wlr_box API (Stabilize wlr_box API #3011)
    • wlr_box_from_pixman_box32 and wlr_box_rotated_bounds have been removed.
    • wlr/types/wlr_box.h has been moved to wlr/util/box.h (a redirection with a warning is still in place).
    • Unnecessary wlr_box.h includes have been replaced with forward declarations in public wlroots headers.
  • backend/drm: preserve mode order from kernel (backend/drm: preserve mode order from kernel #3078): the order of wlr_output.modes has been reversed for the DRM backend to match the kernel's ordering. Compositors are advised to use wlr_output_preferred_mode instead of relying on mode order.
  • layer-shell: replace close() with destroy() (layer-shell: replace close() with destroy()  #3108): replace wlr_layer_surface_v1_close calls with wlr_layer_surface_v1_destroy and ensure the wlr_layer_surface_v1 isn't used after that call.
  • xwm: do not restack surfaces on activation (xwm: do not restack surfaces on activation  #2915): wlr_xwayland_surface_activate no longer brings windows to the front. Compositors now need to explicitly call wlr_xwayland_surface_restack(xsurface, NULL, XCB_STACK_MODE_ABOVE).
  • Minor surface refactor (Minor surface refactor #3169):
    • wlr_subsurface.parent_link has been replaced with wlr_subsurface.current.link; same goes for wlr_subsurface.parent_pending_link.
    • wlr_surface.subsurfaces_{above,below} has been moved to wlr_surface_state, use wlr_surface.current.subsurfaces_{above,below}.
  • xdg-toplevel: refactor configure/state flow (xdg-toplevel: refactor configure/state flow #3199): compositors that used to check wlr_xdg_toplevel.client_pending will now have to check wlr_xdg_toplevel.requested.
  • xdg-shell: introduce wlr_xdg_surface_state (xdg-shell: introduce wlr_xdg_surface_state #3106):
    • wlr_xdg_surface.configure_next_serial has been renamed to wlr_xdg_surface.scheduled_serial.
    • wlr_xdg_surface.configure_serial has been moved into wlr_xdg_surface_state and is double-buffered.
    • wlr_xdg_surface.geometry and wlr_xdg_surface.next_geometry have been replaced with wlr_xdg_surface.current.geometry and wlr_xdg_surface.pending.geometry respectively.
    • wlr_xdg_surface.has_next_geometry has been removed.
  • layer-shell: refactor configure/state flow (layer-shell: refactor configure/state flow #3201):
    • compositors that used to check wlr_layer_surface_v1.client_pending will now have to check wlr_layer_surface_v1.pending.
    • wlr_layer_surface_v1_configure() now returns the configure serial, wlr_layer_surface_v1.configure_next_serial has been removed.
    • wlr_layer_surface_v1.configure_serial has been moved into wlr_layer_surface_v1_state and is double-buffered.
  • xdg-decoration: refactor configure/state flow (xdg-decoration: refactor configure/state flow #3228)
    • wlr_xdg_toplevel_decoration_v1.client_pending_mode has been renamed to wlr_xdg_toplevel_decoration_v1.requested_mode.
    • wlr_xdg_toplevel_decoration_v1.server_pending_mode has been renamed to wlr_xdg_toplevel_decoration_v1.scheduled_mode.
    • wlr_xdg_toplevel_decoration_v1.current_mode has been moved to wlr_xdg_toplevel_decoration_v1_state and is double-buffered.
  • backend: create renderer and allocator in wlr_backend_autocreate (backend: create renderer and allocator in wlr_backend_autocreate #3222): wlr_backend_get_renderer can now fail if wlr_backend_autocreate isn't used and the renderer couldn't be initialized.
  • *_for_each_surface and *_surface_at: skip unmapped surfaces (for_each_surface and surface_at: skip unmapped surfaces #3220): for compositors which only use *_for_each_surface for rendering, this should fix bugs. For compositors which really mean to iterate over all surfaces in the tree regardless of their mapped status, the function needs to be manually re-implemented.

Breaking changes for custom backends and renderers

These changes are unlikely to affect compositors that don't have a custom
backend or renderer.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Development

No branches or pull requests

1 participant