src/output.c: skip painting output when session is not active

On switching to a console vt when an application is painting,
labwc produces a stream of log messages of the form
```
 `00:00:52.345 [ERROR] [../src/output-state.c:45] Failed to commit frame` lines.
``

This patch tries to follow the lead from the solution to this problem
in https://github.com/WayfireWM/wayfire/pull/2484.patch

As noted in that commit message, this patch depends on unreleased
patches to seatd (master) to work reliably, and there may be a a risk
of locking up the labwc if it is used with the seatd-0.8.0.

Check that the session is initialized (is not NULL) before checking it
is active.

Co-authored-by: Madhu <enometh@net.meer>
This commit is contained in:
enometh 2024-11-12 05:03:38 +05:30 committed by GitHub
parent 8a5608a3af
commit 2d3be5ab56
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -115,6 +115,13 @@ output_frame_notify(struct wl_listener *listener, void *data)
return;
}
/*
* skip painting the session when it exists but is not active.
*/
if (output->server->session && !output->server->session->active) {
return;
}
if (!output->scene_output) {
/*
* TODO: This is a short term fix for issue #1667,