term: term_init() calls wl_display_roundtrip()

Instead of having `wayl_win_init()` call
`wl_display_roundtrip()` (which it itself doesn't need), call it from
`term_init()`.

This allows us to add ourselves (the new terminal instance) to the
terminal list in the wayland backend, before triggering the wayland
events caused by `wayl_win_init()`.

This is turn allows the wayland backend to find/lookup the new
terminal when those events occur..
This commit is contained in:
Daniel Eklöf 2020-01-03 11:16:06 +01:00
parent 4451f4ad62
commit 913c684844
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 6 additions and 3 deletions

View file

@ -657,6 +657,12 @@ term_init(const struct config *conf, struct fdm *fdm, struct wayland *wayl,
if ((term->window = wayl_win_init(wayl)) == NULL)
goto err;
/* Let the Wayland backend know we exist */
tll_push_back(wayl->terms, term);
/* Roundtrip to ensure the wayland window have been configured */
wl_display_roundtrip(term->wl->display);
term_set_window_title(term, "foot");
/* Try to use user-configured window dimentions */
@ -675,7 +681,6 @@ term_init(const struct config *conf, struct fdm *fdm, struct wayland *wayl,
height = max(height, term->cell_height);
render_resize(term, width, height);
tll_push_back(wayl->terms, term);
return term;
err:

View file

@ -804,8 +804,6 @@ wayl_win_init(struct wayland *wayl)
wl_subsurface_set_desync(win->search_sub_surface);
wl_surface_commit(win->surface);
wl_display_roundtrip(wayl->display);
return win;
out: