From c6f8ed2f8137fc3394ceae727a935883cc2f6013 Mon Sep 17 00:00:00 2001 From: Victor Berger Date: Sun, 9 Oct 2016 16:33:29 +0200 Subject: [PATCH] wayland: handle `Focused` event --- src/api/wayland/context.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/api/wayland/context.rs b/src/api/wayland/context.rs index 45a13529..615df82c 100644 --- a/src/api/wayland/context.rs +++ b/src/api/wayland/context.rs @@ -510,6 +510,8 @@ impl wl_keyboard::Handler for WaylandEnv { for &(ref window, ref eviter) in &self.windows { if window.equals(surface) { self.kbd_handler.handler().target = Some(eviter.clone()); + let mut guard = eviter.lock().unwrap(); + guard.push_back(Event::Focused(true)); break } } @@ -522,7 +524,10 @@ impl wl_keyboard::Handler for WaylandEnv { serial: u32, surface: &wl_surface::WlSurface) { - self.kbd_handler.handler().target = None; + if let Some(eviter) = self.kbd_handler.handler().target.take() { + let mut guard = eviter.lock().unwrap(); + guard.push_back(Event::Focused(false)); + } self.kbd_handler.leave(evqh, proxy, serial, surface) }