render: fix refresh logic of pending csd|search|url

Our CSDs, the search-box and URL labels are all implemented using
sub-surfaces, synchronized with the main grid.

This means we *must* commit the main surface as well, when updating
one of these sub-surfaces.

The logic for doing so in the frame callback was flawed, and only
triggered when the main grid was actually dirty.

That is, e.g. search box updates that did not also resulted in grid
updates (for example - pasting a search criteria that doesn’t match),
did not result in a UI refresh.

Closes #1040
This commit is contained in:
Daniel Eklöf 2022-04-24 12:04:06 +02:00
parent b68d5da71b
commit 2cbcfb3159
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -3572,7 +3572,7 @@ frame_callback(void *data, struct wl_callback *wl_callback, uint32_t callback_da
if (urls)
render_urls(term);
if (grid && (!term->delayed_render_timer.is_armed | csd | search | urls))
if ((grid && !term->delayed_render_timer.is_armed) || (csd | search | urls))
grid_render(term);
tll_foreach(term->wl->seats, it) {