mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-17 06:46:39 -04:00
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
This commit is contained in:
parent
334019f839
commit
7375fbda16
2 changed files with 22 additions and 9 deletions
|
|
@ -127,6 +127,8 @@ struct wlr_surface_output {
|
|||
struct {
|
||||
struct wl_listener bind;
|
||||
struct wl_listener destroy;
|
||||
|
||||
bool suspended;
|
||||
} WLR_PRIVATE;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue