wlroots/types/scene
Ronan Pigott 7375fbda16 scene: only send leave events to outputs with matching scene root
In handling scene buffer output updates, wlroots would send a leave event to
all entered outputs, even those that the scene root for the scene output update
event did not own. Leaving the output list inaccurate.

Sending leave events only for the given scene introduces a problem, though:
existing logic to de-duplicate leave events stops us from sending a leave event
when we leave all the outputs in a scene, and when the surface then becomes
visible in another scene, the frame pacing output cannot be selected
accurately. This breaks screen capture for off-screen windows in sway.

So, let us also mark outputs that would have been left but were spared by the
deduplication logic as "suspended" indicating they are ineligible as frame
pacing outputs.

Fixes: https://github.com/swaywm/sway/issues/9094
2026-03-28 10:39:22 -07:00
..
drag_icon.c wlr_scene: Don't disable scene nodes at creation time 2024-07-04 14:35:52 -04:00
layer_shell_v1.c scene/layer_shell_v1: Add support for exclusive_edge 2026-02-24 13:28:46 +00:00
output_layout.c scene: ignore duplicate wlr_scene_output_layout_add_output() calls 2024-02-20 11:04:46 +01:00
subsurface_tree.c scene: constify subsurface_tree_set_clip() 2024-03-20 12:56:28 +01:00
surface.c scene: only send leave events to outputs with matching scene root 2026-03-28 10:39:22 -07:00
wlr_scene.c scene: add buffer release point to 'sample' event 2026-03-17 18:14:35 +00:00
xdg_shell.c xdg-surface: fix window geometry handling 2024-08-14 18:52:13 +00:00