render: attach buffer *before* generating damage

Fixes 'invisible window' on Plasma
This commit is contained in:
Daniel Eklöf 2019-09-27 19:33:10 +02:00
parent 3dd5b1fe60
commit b87bf0dd9d
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -439,6 +439,7 @@ grid_render(struct terminal *term)
assert(term->height > 0);
struct buffer *buf = shm_get_buffer(term->wl.shm, term->width, term->height, 1 + term->render.workers.count);
wl_surface_attach(term->wl.surface, buf->wl_buf, 0, 0);
pixman_image_t *pix = buf->pix;
bool all_clean = tll_length(term->grid->scroll_damage) == 0;
@ -681,8 +682,6 @@ grid_render(struct terminal *term)
assert(term->grid->offset >= 0 && term->grid->offset < term->grid->num_rows);
assert(term->grid->view >= 0 && term->grid->view < term->grid->num_rows);
wl_surface_attach(term->wl.surface, buf->wl_buf, 0, 0);
assert(term->render.frame_callback == NULL);
term->render.frame_callback = wl_surface_frame(term->wl.surface);
wl_callback_add_listener(term->render.frame_callback, &frame_listener, term);