aboutsummaryrefslogtreecommitdiff
path: root/src/protocols/mod.rs
AgeCommit message (Collapse)Author
2025-01-18implement `keyboard-shortcuts-inhibit` and `wlr-virtual-pointer` (#630)sodiboo
* stub keyboard-shortcuts-inhibit and virtual-pointer impls * implement keyboard-shortcuts-inhibit * implement virtual-pointer * deal with supressed key release edge-case; add allow-inhibiting property * add toggle-keyboard-shortcuts-inhibit bind * add InputBackend extensions; use Device::output() for absolute pos events * add a `State` parameter to the backend exts and better document future intent * Add some tests for is_inhibiting_shortcuts --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-08-13Implement stub mutter-x11-interopIvan Molodetskikh
Allows xdp-gnome dialogs to work with X11 clients. Fixes https://github.com/YaLTeR/niri/issues/594
2024-07-05Implement wlr-output-management protocoltet
fix: wlr_output_management use WeakOutput
2024-03-15Adds support for wlr_gamma_control_unstable_v1 protocolphuhl
2024-03-08Implement wlr-screencopy v1 (#243)sodiboo
* Implement wlr-screencopy * Finish the implementation Lots of changes, mainly to fix transform handling. Turns out, grim expects transformed buffers and untransforms them by itself using info from wl_output. This means that render helpers needed to learn how to actually render transformed buffers. Also, it meant that y_invert is no longer needed. Next, moved the rendering to the Screencopy frame handler. Turns out, copy() is more or less expected to return immediately, whereas copy_with_damage() is expected to wait until the next VBlank. At least that's the intent I parse reading the protocol. Finally, brought the version from 3 down to 1, because copy_with_damage() will need bigger changes. Grim still works, others not really, mainly because they bind v3 unnecessarily, even if they don't use the damage request. --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-01-30Implement wlr-foreign-toplevel-managementIvan Molodetskikh
The parent event isn't sent but whatever.