No description
A11yKeyboardMonitorState::key_event calls self.has_key_grab() inside self.clients guard loop. A "well-behaved" a11y client calls `WatchKeyboard` before `SetKeyGrabs`. If WatchKeyboard is not called first, the `!client.watched` guard does not short-circuit, so `has_key_grab()` runs and locks `self.clients` again. This causes a deadlock and the compositor freezes, requiring a hard reboot. This commit moves the `self.has_key_grab()` before the guard to prevent a double lock. |
||
|---|---|---|
| .github | ||
| cosmic-comp-config | ||
| data | ||
| debian | ||
| examples | ||
| resources | ||
| src | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| i18n.toml | ||
| LICENSE | ||
| Makefile | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||