diff options
author | Kristian Høgsberg <krh@bitplanet.net> | 2012-03-01 17:09:37 -0500 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2012-03-01 17:33:51 -0500 |
commit | 867dec7ff09e1060f9b45e284bd809c06e2193f0 (patch) | |
tree | fec73695036df9d8a277ec80ac5a59e9570fb818 | |
parent | 3e3bb3216ed0dd5ac35162b91cdd3d0fe3f0e037 (diff) |
compositor: Post keyboard leave before destroying surface
We may want to move this into wayland-server.
-rw-r--r-- | src/compositor.c | 7 |
1 files changed, 7 insertions, 0 deletions
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 @@ weston_compositor_repick(struct weston_compositor *compositor) 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); } |