terminal: Refresh only overlay when flash expires

If we call render_refresh, that will wait for a callback to the main
surface. In the case of a flash, the main surface might not get callbacks
if the compositor implements fancy culling optimizations like wlroots
wlr_scene compositors such as sway version >=1.10.
This commit is contained in:
Alexander Orzechowski 2025-01-04 21:59:19 -05:00 committed by Daniel Eklöf
parent 881eb28134
commit ab5a168dbf
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -419,7 +419,12 @@ fdm_flash(struct fdm *fdm, int fd, int events, void *data)
(unsigned long long)expiration_count);
term->flash.active = false;
render_refresh(term);
render_overlay(term);
// since the overlay surface is synced with the main window surface, we have
// to commit the main surface for the compositor to acknowledge the new
// overlay state.
wl_surface_commit(term->window->surface.surf);
return true;
}