wlroots/types
Isaac Freund 39e918edc8
scene: avoid redundant wl_surface.enter/leave events
Currently we send wl_surface.enter/leave when a surface is hidden
and shown again on the same output. In practice, this happens very
often since compositors like river and sway enable and disable
the scene nodes of surfaces as part of their atomic transaction
strategy involving rendering saved buffers while waiting for
clients to submit new buffers of the desired size.

The new strategy documented in the new comments avoids sending
redundant events in this case.
2026-03-13 17:59:13 +01:00
..
buffer types/wlr_buffer: add buffer_get_drm_format helper function 2026-02-06 13:53:46 +00:00
data_device seat: add wlr_seat_touch_notify_clear_focus 2025-12-11 21:10:59 +00:00
ext_image_capture_source_v1 image_capture_source/output: Update constraints on enable 2026-03-05 21:28:55 +00:00
output Adopt wlr_box_intersects where useful 2026-03-09 22:09:40 +00:00
scene scene: avoid redundant wl_surface.enter/leave events 2026-03-13 17:59:13 +01:00
seat seat: add wlr_seat_touch_notify_clear_focus 2025-12-11 21:10:59 +00:00
tablet_v2 tablet-v2: cleanup focused surface on tool destroy 2025-04-27 16:57:50 +00:00
xdg_shell seat: add wlr_seat_touch_notify_clear_focus 2025-12-11 21:10:59 +00:00
meson.build ext-workspace-v1: add implementation 2026-01-31 01:44:23 +09:00
wlr_alpha_modifier_v1.c alpha-modifier-v1: add a missing NULL check in wlr_alpha_modifier_v1_get_surface_state() 2024-05-01 03:07:16 +03:00
wlr_color_management_v1.c color_management_v1: new enum value for 'srgb' transfer function 2026-01-23 18:50:09 +00:00
wlr_color_representation_v1.c color-representation-v1: fix condition in surface commit 2026-02-07 08:36:29 +04:00
wlr_compositor.c compositor: use wl_resource_post_error_vargs() 2025-08-13 20:59:13 +00:00
wlr_content_type_v1.c Avoid including generated headers publicly where possible 2025-08-13 22:46:37 +02:00
wlr_cursor.c wlr_cursor: fix event type in handle_tablet_tool_button 2026-02-03 21:25:50 +08:00
wlr_cursor_shape_v1.c Avoid including generated headers publicly where possible 2025-08-13 22:46:37 +02:00
wlr_damage_ring.c damage_ring: Remove wlr_damage_ring_set_bounds 2024-10-09 06:31:46 +00:00
wlr_data_control_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_drm.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_drm_lease_v1.c drm_lease_v1: initialize device resource link during abnormal exit 2025-09-11 11:05:39 +08:00
wlr_export_dmabuf_v1.c Change all timespec pointers in events to owned 2025-05-15 08:59:56 +00:00
wlr_ext_data_control_v1.c ext-data-control: add missing listener list assertion 2025-04-06 10:13:40 +03:00
wlr_ext_foreign_toplevel_list_v1.c Fix/cleanup includes a bit 2025-04-15 20:13:29 +03:00
wlr_ext_image_copy_capture_v1.c wlr_ext_image_copy_capture_v1: Fix segmentation fault when using cursor session 2026-01-12 12:40:34 +01:00
wlr_ext_workspace_v1.c ext-workspace-v1: add implementation 2026-01-31 01:44:23 +09:00
wlr_fixes.c fixes: add implementation 2025-08-13 20:41:21 +00:00
wlr_foreign_toplevel_management_v1.c wlr-foreign-toplevel: avoid wl_resource_find_for_client() 2025-11-25 18:54:20 +00:00
wlr_fractional_scale_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_gamma_control_v1.c gamma_control_v1: introduce fallback_gamma_size 2025-10-18 20:36:01 +02:00
wlr_idle_inhibit_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_idle_notify_v1.c idle_notify_v1: drop trailing spaces 2025-06-15 12:25:36 +00:00
wlr_input_device.c types/wlr_input_device: name maybe NULL 2025-11-04 17:29:23 +08:00
wlr_input_method_v2.c input-method-v2: Destroy keyboard grab before input method 2025-10-16 12:07:47 +00:00
wlr_keyboard.c Add support for XKB_LED_NAME_COMPOSE and XKB_LED_NAME_KANA USB HID LEDs 2025-05-15 09:14:48 +00:00
wlr_keyboard_group.c types: Simplify wlr_keyboard_group_destroy 2026-02-02 10:46:20 -05:00
wlr_keyboard_shortcuts_inhibit_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_layer_shell_v1.c xdg-shell,layer-shell: assert that configure events are only sent to initialized surfaces 2025-03-01 16:07:11 +00:00
wlr_linux_dmabuf_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_linux_drm_syncobj_v1.c linux_drm_syncobj_v1: fix use-after-free in surface_commit_destroy() 2025-10-17 09:05:53 +00:00
wlr_output_layer.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_output_layout.c Adopt wlr_box_intersects where useful 2026-03-09 22:09:40 +00:00
wlr_output_management_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_output_power_management_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_output_swapchain_manager.c output-swapchain-manager: Reject zero resolution 2026-01-22 12:55:13 +01:00
wlr_pointer.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_pointer_constraints_v1.c Avoid including generated headers publicly where possible 2025-08-13 22:46:37 +02:00
wlr_pointer_gestures_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_presentation_time.c presentation-time: make version a uint32_t 2025-04-27 20:42:57 +00:00
wlr_primary_selection.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_primary_selection_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_region.c compositor: deprecate wlr/types/wlr_region.h 2023-11-24 15:09:31 +03:00
wlr_relative_pointer_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_screencopy_v1.c screencopy: simplify capture error handling 2026-03-04 21:09:47 +08:00
wlr_security_context_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_server_decoration.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_session_lock_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_shm.c buffer: introduce wlr_buffer_finish() 2025-01-08 16:06:12 +00:00
wlr_single_pixel_buffer_v1.c single-pixel-buffer: Add try_from_buffer() function 2025-04-07 13:25:42 +01:00
wlr_subcompositor.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_switch.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_tablet_pad.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_tablet_tool.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_tearing_control_v1.c Fix/cleanup includes a bit 2025-04-15 20:13:29 +03:00
wlr_text_input_v3.c text-input-v3: Use NULL when emitting signals 2025-05-15 13:36:58 +00:00
wlr_touch.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_transient_seat_v1.c transient_seat: initialize seat destroy listener 2025-07-10 19:52:45 +02:00
wlr_viewporter.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_virtual_keyboard_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_virtual_pointer_v1.c wlr_virtual_pointer: Set axis source on all axis 2025-11-06 16:02:58 +00:00
wlr_xcursor_manager.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_xdg_activation_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_xdg_decoration_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_xdg_dialog_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_xdg_foreign_registry.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_xdg_foreign_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_xdg_foreign_v2.c Fix/cleanup includes a bit 2025-04-15 20:13:29 +03:00
wlr_xdg_output_v1.c Assert (almost all) signals have no attached listeners on destroy 2025-01-15 19:53:11 +03:00
wlr_xdg_system_bell_v1.c xdg-system-bell-v1: set proper global/resource user data 2025-04-11 14:04:23 +00:00
wlr_xdg_toplevel_icon_v1.c wlr_xdg_toplevel_icon_v1: check the correct resource 2025-08-27 20:01:50 +08:00
wlr_xdg_toplevel_tag_v1.c xdg-toplevel-tag-v1: new protocol 2025-07-07 09:10:37 +00:00