compositor: Post keyboard leave before destroying surface
We may want to move this into wayland-server.
diff --git a/src/compositor.c b/src/compositor.c
index c4bdf25..09519b7 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -598,11 +598,18 @@
static void
weston_surface_unmap(struct weston_surface *surface)
{
+ struct wl_input_device *device = surface->compositor->input_device;
+
weston_surface_damage_below(surface);
surface->output = NULL;
wl_list_remove(&surface->link);
wl_list_remove(&surface->layer_link);
weston_compositor_repick(surface->compositor);
+
+ if (device->keyboard_focus == &surface->surface)
+ wl_input_device_set_keyboard_focus(device, NULL,
+ weston_compositor_get_time());
+
weston_compositor_schedule_repaint(surface->compositor);
}