mirror of
https://github.com/rust-windowing/winit.git
synced 2026-06-27 07:03:15 -04:00
wayland: handle Focused event
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user