fix(input): require mapped layers for keyboard focus (#48)
Co-authored-by: Samuel Onoja <[email protected]>
This commit is contained in:
1 parent
0589f5685b
commit
d73d5f08f9
5 files changed
+357
-16
No files matched your search
@@ -713,10 +713,14 @@ impl Ferese {
|
||||
return;
|
||||
}
|
||||
let surface = self
|
||||
.focused_window
|
||||
.and_then(|focused| self.windows.window(focused))
|
||||
.and_then(|window| window.toplevel())
|
||||
.map(|toplevel| toplevel.wl_surface().clone());
|
||||
.exclusive_keyboard_layer()
|
||||
.map(|layer| layer.wl_surface().clone())
|
||||
.or_else(|| {
|
||||
self.focused_window
|
||||
.and_then(|focused| self.windows.window(focused))
|
||||
.and_then(|window| window.toplevel())
|
||||
.map(|toplevel| toplevel.wl_surface().clone())
|
||||
});
|
||||
|
||||
self.seat.get_keyboard().expect("seat has a keyboard").set_focus(
|
||||
self,
|
||||
|
||||
@@ -178,6 +178,7 @@ impl Ferese {
|
||||
if changes.focus || self.session_lock.active() {
|
||||
self.restore_keyboard_focus();
|
||||
}
|
||||
self.reconcile_layer_keyboard_focus();
|
||||
self.refresh_lock_outputs();
|
||||
self.refresh_idle_inhibition();
|
||||
let batch = self.desktop_transition.take().unwrap();
|
||||
|
||||
Reference in new issue
Block a user