Add pointer constraints support (zwp_pointer_constraints_v1)
Part of #8
This commit is contained in:
parent
2317ebb842
commit
da82e6907c
6 changed files with 208 additions and 11 deletions
|
|
@ -3,9 +3,23 @@ use log::{debug, trace, warn};
|
|||
use std::os::fd::AsFd;
|
||||
use wayland_client::{protocol as client, Proxy};
|
||||
use wayland_protocols::{
|
||||
wp::relative_pointer::zv1::{
|
||||
client::zwp_relative_pointer_v1::{self, ZwpRelativePointerV1 as RelativePointerClient},
|
||||
server::zwp_relative_pointer_v1::ZwpRelativePointerV1 as RelativePointerServer,
|
||||
wp::{
|
||||
pointer_constraints::zv1::{
|
||||
client::{
|
||||
zwp_confined_pointer_v1::{self, ZwpConfinedPointerV1 as ConfinedPointerClient},
|
||||
zwp_locked_pointer_v1::{self, ZwpLockedPointerV1 as LockedPointerClient},
|
||||
},
|
||||
server::{
|
||||
zwp_confined_pointer_v1::ZwpConfinedPointerV1 as ConfinedPointerServer,
|
||||
zwp_locked_pointer_v1::ZwpLockedPointerV1 as LockedPointerServer,
|
||||
},
|
||||
},
|
||||
relative_pointer::zv1::{
|
||||
client::zwp_relative_pointer_v1::{
|
||||
self, ZwpRelativePointerV1 as RelativePointerClient,
|
||||
},
|
||||
server::zwp_relative_pointer_v1::ZwpRelativePointerV1 as RelativePointerServer,
|
||||
},
|
||||
},
|
||||
xdg::{
|
||||
shell::client::{xdg_popup, xdg_surface, xdg_toplevel},
|
||||
|
|
@ -631,7 +645,7 @@ impl HandleEvent for RelativePointer {
|
|||
|
||||
fn handle_event<C: XConnection>(&mut self, event: Self::Event, _: &mut ServerState<C>) {
|
||||
simple_event_shunt! {
|
||||
self.server, event: rp::client::zwp_relative_pointer_v1::Event => [
|
||||
self.server, event: zwp_relative_pointer_v1::Event => [
|
||||
RelativeMotion {
|
||||
utime_hi,
|
||||
utime_lo,
|
||||
|
|
@ -644,3 +658,31 @@ impl HandleEvent for RelativePointer {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub type LockedPointer = GenericObject<LockedPointerServer, LockedPointerClient>;
|
||||
impl HandleEvent for LockedPointer {
|
||||
type Event = zwp_locked_pointer_v1::Event;
|
||||
|
||||
fn handle_event<C: XConnection>(&mut self, event: Self::Event, _: &mut ServerState<C>) {
|
||||
simple_event_shunt! {
|
||||
self.server, event: zwp_locked_pointer_v1::Event => [
|
||||
Locked,
|
||||
Unlocked
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub type ConfinedPointer = GenericObject<ConfinedPointerServer, ConfinedPointerClient>;
|
||||
impl HandleEvent for ConfinedPointer {
|
||||
type Event = zwp_confined_pointer_v1::Event;
|
||||
|
||||
fn handle_event<C: XConnection>(&mut self, event: Self::Event, _: &mut ServerState<C>) {
|
||||
simple_event_shunt! {
|
||||
self.server, event: zwp_confined_pointer_v1::Event => [
|
||||
Confined,
|
||||
Unconfined
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue