wlroots/types
Alexander Orzechowski e1e911d425 scene_output_layout: Don't destroy output when output layout is destroyed
There were a couple of problems with this:
1. The behavior is unexpected. Typically objects in wlroots won't
also destroy objects that they depend on. For instance, wlr_scene_output
will not destroy the wlr_output when it's destroyed. It shouldn't be any
different for scene layouts.
2. This fixes a crash where because wlr_output_layout and wlr_scene_output
are both addons to wlr_output, we might get into a situation where
wl_list_for_each_safe might malfunction. See [1]

This means that the compositor needs to manually destroy the output
when they destroy the layout, hence ~breaking. Compositors can just
call `wlr_scene_output_destroy()` if they want to destroy both at the
same time.

[1] https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4358#note_2106260

This reverts commit 1a731596c5.

Co-authored-by: Kirill Primak <vyivel@eclair.cafe>
2023-10-07 13:31:20 -04:00
..
buffer treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
data_device treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
output output_event_commit: Remove committed and buffer 2023-10-06 10:06:01 +00:00
scene scene_output_layout: Don't destroy output when output layout is destroyed 2023-10-07 13:31:20 -04:00
seat seat: remove wlr_seat_validate_grab_serial() 2023-10-06 08:51:47 +00:00
tablet_v2 treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
xdg_shell seat: remove wlr_seat_validate_grab_serial() 2023-10-06 08:51:47 +00:00
meson.build drop KDE idle protocol support 2023-10-04 12:19:30 -04:00
wlr_compositor.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_content_type_v1.c content-type-v1: add version param to wlr_content_type_manager_v1_create() 2022-11-15 16:43:04 +01:00
wlr_cursor_shape_v1.c cursor-shape-v1: new protocol implementation 2023-07-24 01:00:19 +00:00
wlr_cursor.c output_event_commit: Remove committed and buffer 2023-10-06 10:06:01 +00:00
wlr_damage_ring.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_data_control_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_drm_lease_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_drm.c Use wl_container_of() instead of casts 2023-07-11 20:16:17 +02:00
wlr_export_dmabuf_v1.c output_event_commit: Remove committed and buffer 2023-10-06 10:06:01 +00:00
wlr_foreign_toplevel_management_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_fractional_scale_v1.c wp-fractional-scale-v1: new protocol implementation 2023-02-08 16:31:39 +01:00
wlr_fullscreen_shell_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_gamma_control_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_idle_inhibit_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_idle_notify_v1.c idle-notify-v1: new protocol implementation 2022-10-14 13:36:15 +00:00
wlr_input_device.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_input_inhibitor.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_input_method_v2.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_keyboard_group.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_keyboard_shortcuts_inhibit_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_keyboard.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_layer_shell_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_linux_dmabuf_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_matrix.c matrix: remove wlr_matrix_projection() 2022-06-08 19:27:36 +00:00
wlr_output_layer.c output-layer: add feedback event 2023-02-20 18:38:57 +01:00
wlr_output_layout.c output_event_commit: Remove committed and buffer 2023-10-06 10:06:01 +00:00
wlr_output_management_v1.c wlr-output-management: implement adaptive sync 2022-10-24 16:19:25 +00:00
wlr_output_power_management_v1.c output_event_commit: Remove committed and buffer 2023-10-06 10:06:01 +00:00
wlr_pointer_constraints_v1.c region: constify 2022-11-11 23:11:17 +00:00
wlr_pointer_gestures_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_pointer.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_presentation_time.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_primary_selection_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_primary_selection.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_region.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_relative_pointer_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_screencopy_v1.c output_event_commit: Remove committed and buffer 2023-10-06 10:06:01 +00:00
wlr_server_decoration.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_session_lock_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_shm.c shm: add create() function without a wlr_renderer 2022-11-25 15:16:42 +00:00
wlr_single_pixel_buffer_v1.c single-pixel-buffer-v1: new protocol implementation 2022-08-03 10:35:23 +00:00
wlr_subcompositor.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_switch.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_tablet_pad.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_tablet_tool.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_tearing_control_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_text_input_v3.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_touch.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_viewporter.c viewporter: check for an existing viewport 2023-07-07 12:49:06 +03:00
wlr_virtual_keyboard_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_virtual_pointer_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_xcursor_manager.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_xdg_activation_v1.c xdg-activation: accept pointer focus for new tokens 2023-02-06 15:52:02 +01:00
wlr_xdg_decoration_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_xdg_foreign_registry.c Use wl_signal_emit_mutable 2022-08-18 07:16:16 -04:00
wlr_xdg_foreign_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_xdg_foreign_v2.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_xdg_output_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00