render: never render CSD and/or search box "immediately"

Handle the CSDs and the search box the same way we handle the main
grid; when we need to redraw them, call
render_refresh_{csd,search}(). This sets a flag that is checked after
each FDM iteration. All actual rendering is done here.

This also ties the commits of the Wayland sub-surfaces to the commit
of the main surface.
This commit is contained in:
Daniel Eklöf 2020-03-06 19:16:54 +01:00
parent e5540a0d2e
commit c5a1af4e53
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
6 changed files with 118 additions and 81 deletions

View file

@ -14,13 +14,10 @@ bool render_resize_force(struct terminal *term, int width, int height);
void render_set_title(struct terminal *term, const char *title);
void render_refresh(struct terminal *term);
void render_refresh_csd(struct terminal *term);
void render_refresh_search(struct terminal *term);
bool render_xcursor_set(struct terminal *term);
void render_search_box(struct terminal *term);
void render_csd(struct terminal *term);
void render_csd_title(struct terminal *term);
void render_csd_button(struct terminal *term, enum csd_surface surf_idx);
struct render_worker_context {
int my_id;
struct terminal *term;