diff --git a/render.c b/render.c index 5e7ef233..ba70aee0 100644 --- a/render.c +++ b/render.c @@ -1110,6 +1110,8 @@ render_set_title(struct terminal *term, const char *_title) void render_refresh(struct terminal *term) { + assert(term->window->is_configured); + if (term->window->frame_callback == NULL) grid_render(term); else diff --git a/wayland.c b/wayland.c index 4b419684..603eb441 100644 --- a/wayland.c +++ b/wayland.c @@ -505,6 +505,8 @@ xdg_surface_configure(void *data, struct xdg_surface *xdg_surface, struct wl_window *win = data; struct terminal *term = win->term; + win->is_configured = true; + if (win->configure.is_activated) term_visual_focus_in(term); else diff --git a/wayland.h b/wayland.h index f802bcc7..fd0c36e2 100644 --- a/wayland.h +++ b/wayland.h @@ -99,6 +99,7 @@ struct wl_window { tll(const struct monitor *) on_outputs; /* Outputs we're mapped on */ + bool is_configured; struct { bool is_activated; int width;