search: don't destroy/recreate search (sub)surface

Create the sub-surface once, at startup. Then, instead of destroying
it when committing/cancelling a search, unmap it (by attaching a NULL
buffer to it).
This commit is contained in:
Daniel Eklöf 2019-08-29 20:22:07 +02:00
parent 2c3ab701e7
commit 1e4b11b0fa
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 9 additions and 27 deletions

7
main.c
View file

@ -723,6 +723,7 @@ main(int argc, char *const *argv)
goto out;
}
/* Main window */
term.wl.surface = wl_compositor_create_surface(term.wl.compositor);
if (term.wl.surface == NULL) {
LOG_ERR("failed to create wayland surface");
@ -740,6 +741,12 @@ main(int argc, char *const *argv)
xdg_toplevel_set_app_id(term.wl.xdg_toplevel, "foot");
term_set_window_title(&term, "foot");
/* Scrollback search box */
term.wl.search_surface = wl_compositor_create_surface(term.wl.compositor);
term.wl.search_sub_surface = wl_subcompositor_get_subsurface(
term.wl.sub_compositor, term.wl.search_surface, term.wl.surface);
wl_subsurface_set_desync(term.wl.search_sub_surface);
wl_surface_commit(term.wl.surface);
wl_display_roundtrip(term.wl.display);