mirror of
https://github.com/rust-windowing/winit.git
synced 2026-09-01 22:30:04 -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 {
|
for &(ref window, ref eviter) in &self.windows {
|
||||||
if window.equals(surface) {
|
if window.equals(surface) {
|
||||||
self.kbd_handler.handler().target = Some(eviter.clone());
|
self.kbd_handler.handler().target = Some(eviter.clone());
|
||||||
|
let mut guard = eviter.lock().unwrap();
|
||||||
|
guard.push_back(Event::Focused(true));
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -522,7 +524,10 @@ impl wl_keyboard::Handler for WaylandEnv {
|
|||||||
serial: u32,
|
serial: u32,
|
||||||
surface: &wl_surface::WlSurface)
|
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)
|
self.kbd_handler.leave(evqh, proxy, serial, surface)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user