cosmic-comp/src/wayland/handlers/pointer_constraints.rs
2024-10-02 23:55:10 +02:00

37 lines
1 KiB
Rust

// SPDX-License-Identifier: GPL-3.0-only
use crate::state::State;
use smithay::{
delegate_pointer_constraints,
input::pointer::PointerHandle,
reexports::wayland_server::protocol::wl_surface::WlSurface,
utils::{Logical, Point},
wayland::{
pointer_constraints::{with_pointer_constraint, PointerConstraintsHandler},
seat::WaylandFocus,
},
};
impl PointerConstraintsHandler for State {
fn new_constraint(&mut self, surface: &WlSurface, pointer: &PointerHandle<Self>) {
// XXX region
if pointer
.current_focus()
.map_or(false, |x| x.wl_surface().as_deref() == Some(surface))
{
with_pointer_constraint(surface, pointer, |constraint| {
constraint.unwrap().activate();
});
}
}
fn cursor_position_hint(
&mut self,
_surface: &WlSurface,
_pointer: &PointerHandle<Self>,
_location: Point<f64, Logical>,
) {
// TODO
}
}
delegate_pointer_constraints!(State);