wlroots-hyprland/include/wlr/types
Simon Ser 9e58301df7 surface: allow placing subsurfaces below parent
Prior to this commit, subsurfaces could only be placed above their
parent. Any place_{above,below} request involving the parent would
fail with a protocol error.

However the Wayland protocol allows using the parent surface in the
place_{above,below} requests, and allows subsurfaces to be placed
below their parent.

Weston's implementation adds a dummy wl_list node in the subsurface
list. However this is potentially dangerous: iterating the list
requires making sure the dummy wl_list node is checked for, otherwise
memory corruption will happen.

Instead, split the list in two: one for subsurfaces above the parent,
the other for subsurfaces below.

Tested with wleird's subsurfaces demo client.

Closes: https://github.com/swaywm/wlroots/issues/1865
2021-06-03 14:04:07 +02:00
..
wlr_box.h box: add wlr_fbox 2020-06-17 09:10:54 -06:00
wlr_buffer.h buffer: add format param to get_data_ptr 2021-04-27 20:36:03 +02:00
wlr_compositor.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_cursor.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_data_control_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_data_device.h wlr_drag: remove unused point_destroy field 2020-10-18 15:17:28 +02:00
wlr_export_dmabuf_v1.h export-dmabuf: export DMA-BUF on output commit 2020-11-05 09:43:42 +01:00
wlr_foreign_toplevel_management_v1.h foreign-toplevel-management: report parent toplevel 2020-10-18 17:14:35 +02:00
wlr_fullscreen_shell_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_gamma_control_v1.h gamma-control-v1: apply gamma LUT when output gets enabled 2020-11-03 17:47:04 +01:00
wlr_idle.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_idle_inhibit_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_input_device.h Remove unneeded includes from wlr_input_device.h 2020-11-11 15:40:47 +01:00
wlr_input_inhibitor.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_input_method_v2.h input-method: implement keyboard grabs 2020-07-08 11:21:57 +02:00
wlr_keyboard.h Replace wlr_key_state with wl_keyboard_key_state 2020-11-11 10:58:38 +01:00
wlr_keyboard_group.h Use absolute paths in include in header files 2021-04-06 10:40:56 +02:00
wlr_keyboard_shortcuts_inhibit_v1.h keyboard-shortcuts-inhibit: Implement the protocol 2020-02-20 21:40:34 +01:00
wlr_layer_shell_v1.h layer-shell: allow new values for keyboard-interactivity 2021-01-12 20:13:52 +01:00
wlr_linux_dmabuf_v1.h linux-dmabuf-v1: implement wlr_buffer 2021-05-17 16:22:43 +02:00
wlr_list.h Initial pass on API stability guarantees 2018-07-29 19:20:34 -04:00
wlr_matrix.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_output.h output: take a wlr_buffer in set_cursor 2021-06-02 11:08:52 +02:00
wlr_output_damage.h output-damage: stop relying on output pending state on commit 2021-01-16 09:06:27 +01:00
wlr_output_layout.h Document the wlr_output_layout_get function 2021-04-11 10:19:00 +02:00
wlr_output_management_v1.h output-management: use same types as wlr_output 2021-01-10 16:28:19 +01:00
wlr_output_power_management_v1.h output-power-management-v1: listen to output commit 2020-08-27 13:54:19 -06:00
wlr_pointer.h Remove unneeded includes from wlr_input_device.h 2020-11-11 15:40:47 +01:00
wlr_pointer_constraints_v1.h input/pointer: notify compositor when constraint region changes 2020-05-13 20:38:12 +02:00
wlr_pointer_gestures_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_presentation_time.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_primary_selection.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_primary_selection_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_region.h region: make wlr_region_create private 2021-02-02 23:42:53 +01:00
wlr_relative_pointer_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_screencopy_v1.h screencopy: perform DMA-BUF copy on output commit 2020-11-05 09:43:42 +01:00
wlr_seat.h types/seat: Clear focus in wlr_seat_destroy() 2021-01-07 14:35:08 +01:00
wlr_server_decoration.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_surface.h surface: allow placing subsurfaces below parent 2021-06-03 14:04:07 +02:00
wlr_switch.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_tablet_pad.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_tablet_tool.h Make implementation function lists static const 2021-02-05 10:04:20 +01:00
wlr_tablet_v2.h tablet: expose wlr_tablet_tool_v2_has_implicit_grab function 2020-05-14 18:45:19 +02:00
wlr_text_input_v3.h text_input_v3: correct typo in enum field 2021-02-15 16:33:05 +01:00
wlr_touch.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_viewporter.h viewporter: new protocol implementation 2020-06-17 09:10:54 -06:00
wlr_virtual_keyboard_v1.h virtual-keyboard: add wlr_input_device_get_virtual_keyboard 2020-07-08 11:21:57 +02:00
wlr_virtual_pointer_v1.h virtual-pointer: Add request for mapping to specific output 2020-02-10 21:01:38 +01:00
wlr_xcursor_manager.h Make wlr_xcursor_manager_load() return a bool 2020-05-18 16:48:44 +02:00
wlr_xdg_activation_v1.h xdg-activation-v1: add token timeout 2021-06-02 11:18:25 +02:00
wlr_xdg_decoration_v1.h Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_xdg_foreign_registry.h types: add wlr_xdg_foreign_registry 2021-01-05 20:32:56 +01:00
wlr_xdg_foreign_v1.h types: add wlr_xdg_foreign_v1 2021-01-05 20:32:56 +01:00
wlr_xdg_foreign_v2.h types: add wlr_xdg_foreign_v2 2021-01-05 20:32:56 +01:00
wlr_xdg_output_v1.h xdg-output-v1: use wlr_output.description 2019-12-29 12:35:22 -05:00
wlr_xdg_shell.h Make the xdg_popup_get_position to public 2021-06-03 09:50:54 +02:00