chore: Update smithay/libcosmic
This commit is contained in:
parent
3cff426805
commit
cf75bc1952
7 changed files with 207 additions and 170 deletions
|
|
@ -18,12 +18,6 @@ use smithay::{
|
|||
},
|
||||
input::{
|
||||
keyboard::{KeyboardTarget, KeysymHandle, ModifiersState},
|
||||
pointer::{
|
||||
AxisFrame, ButtonEvent, GestureHoldBeginEvent, GestureHoldEndEvent,
|
||||
GesturePinchBeginEvent, GesturePinchEndEvent, GesturePinchUpdateEvent,
|
||||
GestureSwipeBeginEvent, GestureSwipeEndEvent, GestureSwipeUpdateEvent, MotionEvent,
|
||||
PointerTarget, RelativeMotionEvent,
|
||||
},
|
||||
Seat,
|
||||
},
|
||||
output::Output,
|
||||
|
|
@ -670,11 +664,22 @@ impl KeyboardTarget<State> for CosmicSurface {
|
|||
if self.0.is_x11() {
|
||||
keys = vec![];
|
||||
}
|
||||
KeyboardTarget::enter(&self.0, seat, data, keys, serial)
|
||||
|
||||
match self.0.underlying_surface() {
|
||||
WindowSurface::Wayland(toplevel) => {
|
||||
KeyboardTarget::enter(toplevel.wl_surface(), seat, data, keys, serial)
|
||||
}
|
||||
WindowSurface::X11(x11) => KeyboardTarget::enter(x11, seat, data, keys, serial),
|
||||
}
|
||||
}
|
||||
|
||||
fn leave(&self, seat: &Seat<State>, data: &mut State, serial: smithay::utils::Serial) {
|
||||
KeyboardTarget::leave(&self.0, seat, data, serial)
|
||||
match self.0.underlying_surface() {
|
||||
WindowSurface::Wayland(toplevel) => {
|
||||
KeyboardTarget::leave(toplevel.wl_surface(), seat, data, serial)
|
||||
}
|
||||
WindowSurface::X11(x11) => KeyboardTarget::leave(x11, seat, data, serial),
|
||||
}
|
||||
}
|
||||
|
||||
fn key(
|
||||
|
|
@ -686,7 +691,14 @@ impl KeyboardTarget<State> for CosmicSurface {
|
|||
serial: smithay::utils::Serial,
|
||||
time: u32,
|
||||
) {
|
||||
KeyboardTarget::key(&self.0, seat, data, key, state, serial, time)
|
||||
match self.0.underlying_surface() {
|
||||
WindowSurface::Wayland(toplevel) => {
|
||||
KeyboardTarget::key(toplevel.wl_surface(), seat, data, key, state, serial, time)
|
||||
}
|
||||
WindowSurface::X11(x11) => {
|
||||
KeyboardTarget::key(x11, seat, data, key, state, serial, time)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn modifiers(
|
||||
|
|
@ -696,110 +708,14 @@ impl KeyboardTarget<State> for CosmicSurface {
|
|||
modifiers: ModifiersState,
|
||||
serial: smithay::utils::Serial,
|
||||
) {
|
||||
KeyboardTarget::modifiers(&self.0, seat, data, modifiers, serial)
|
||||
}
|
||||
}
|
||||
|
||||
impl PointerTarget<State> for CosmicSurface {
|
||||
fn enter(&self, seat: &Seat<State>, data: &mut State, event: &MotionEvent) {
|
||||
PointerTarget::enter(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn motion(&self, seat: &Seat<State>, data: &mut State, event: &MotionEvent) {
|
||||
PointerTarget::motion(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn relative_motion(&self, seat: &Seat<State>, data: &mut State, event: &RelativeMotionEvent) {
|
||||
PointerTarget::relative_motion(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn button(&self, seat: &Seat<State>, data: &mut State, event: &ButtonEvent) {
|
||||
PointerTarget::button(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn axis(&self, seat: &Seat<State>, data: &mut State, frame: AxisFrame) {
|
||||
PointerTarget::axis(&self.0, seat, data, frame)
|
||||
}
|
||||
|
||||
fn frame(&self, seat: &Seat<State>, data: &mut State) {
|
||||
PointerTarget::frame(&self.0, seat, data)
|
||||
}
|
||||
|
||||
fn leave(
|
||||
&self,
|
||||
seat: &Seat<State>,
|
||||
data: &mut State,
|
||||
serial: smithay::utils::Serial,
|
||||
time: u32,
|
||||
) {
|
||||
PointerTarget::leave(&self.0, seat, data, serial, time)
|
||||
}
|
||||
|
||||
fn gesture_swipe_begin(
|
||||
&self,
|
||||
seat: &Seat<State>,
|
||||
data: &mut State,
|
||||
event: &GestureSwipeBeginEvent,
|
||||
) {
|
||||
PointerTarget::gesture_swipe_begin(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn gesture_swipe_update(
|
||||
&self,
|
||||
seat: &Seat<State>,
|
||||
data: &mut State,
|
||||
event: &GestureSwipeUpdateEvent,
|
||||
) {
|
||||
PointerTarget::gesture_swipe_update(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn gesture_swipe_end(
|
||||
&self,
|
||||
seat: &Seat<State>,
|
||||
data: &mut State,
|
||||
event: &GestureSwipeEndEvent,
|
||||
) {
|
||||
PointerTarget::gesture_swipe_end(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn gesture_pinch_begin(
|
||||
&self,
|
||||
seat: &Seat<State>,
|
||||
data: &mut State,
|
||||
event: &GesturePinchBeginEvent,
|
||||
) {
|
||||
PointerTarget::gesture_pinch_begin(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn gesture_pinch_update(
|
||||
&self,
|
||||
seat: &Seat<State>,
|
||||
data: &mut State,
|
||||
event: &GesturePinchUpdateEvent,
|
||||
) {
|
||||
PointerTarget::gesture_pinch_update(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn gesture_pinch_end(
|
||||
&self,
|
||||
seat: &Seat<State>,
|
||||
data: &mut State,
|
||||
event: &GesturePinchEndEvent,
|
||||
) {
|
||||
PointerTarget::gesture_pinch_end(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn gesture_hold_begin(
|
||||
&self,
|
||||
seat: &Seat<State>,
|
||||
data: &mut State,
|
||||
event: &GestureHoldBeginEvent,
|
||||
) {
|
||||
PointerTarget::gesture_hold_begin(&self.0, seat, data, event)
|
||||
}
|
||||
|
||||
fn gesture_hold_end(&self, seat: &Seat<State>, data: &mut State, event: &GestureHoldEndEvent) {
|
||||
PointerTarget::gesture_hold_end(&self.0, seat, data, event)
|
||||
match self.0.underlying_surface() {
|
||||
WindowSurface::Wayland(toplevel) => {
|
||||
KeyboardTarget::modifiers(toplevel.wl_surface(), seat, data, modifiers, serial)
|
||||
}
|
||||
WindowSurface::X11(x11) => {
|
||||
KeyboardTarget::modifiers(x11, seat, data, modifiers, serial)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,8 +18,12 @@ use smithay::{
|
|||
pointer::{
|
||||
AxisFrame, ButtonEvent, GestureHoldBeginEvent, GestureHoldEndEvent,
|
||||
GesturePinchBeginEvent, GesturePinchEndEvent, GesturePinchUpdateEvent,
|
||||
GestureSwipeBeginEvent, GestureSwipeEndEvent, GestureSwipeUpdateEvent, MotionEvent,
|
||||
PointerTarget, RelativeMotionEvent,
|
||||
GestureSwipeBeginEvent, GestureSwipeEndEvent, GestureSwipeUpdateEvent,
|
||||
MotionEvent as PointerMotionEvent, PointerTarget, RelativeMotionEvent,
|
||||
},
|
||||
touch::{
|
||||
DownEvent, MotionEvent as TouchMotionEvent, OrientationEvent, ShapeEvent, TouchTarget,
|
||||
UpEvent,
|
||||
},
|
||||
Seat,
|
||||
},
|
||||
|
|
@ -205,7 +209,7 @@ impl IsAlive for KeyboardFocusTarget {
|
|||
}
|
||||
|
||||
impl PointerTarget<State> for PointerFocusTarget {
|
||||
fn enter(&self, seat: &Seat<State>, data: &mut State, event: &MotionEvent) {
|
||||
fn enter(&self, seat: &Seat<State>, data: &mut State, event: &PointerMotionEvent) {
|
||||
if let Some(element) = self.toplevel(data) {
|
||||
for session in element.cursor_sessions() {
|
||||
session.set_cursor_pos(Some(
|
||||
|
|
@ -233,7 +237,7 @@ impl PointerTarget<State> for PointerFocusTarget {
|
|||
PointerFocusTarget::ResizeFork(f) => PointerTarget::enter(f, seat, data, event),
|
||||
}
|
||||
}
|
||||
fn motion(&self, seat: &Seat<State>, data: &mut State, event: &MotionEvent) {
|
||||
fn motion(&self, seat: &Seat<State>, data: &mut State, event: &PointerMotionEvent) {
|
||||
if let Some(element) = self.toplevel(data) {
|
||||
for session in element.cursor_sessions() {
|
||||
session.set_cursor_pos(Some(
|
||||
|
|
@ -483,6 +487,92 @@ impl PointerTarget<State> for PointerFocusTarget {
|
|||
}
|
||||
}
|
||||
|
||||
impl TouchTarget<State> for PointerFocusTarget {
|
||||
fn down(&self, seat: &Seat<State>, data: &mut State, event: &DownEvent, seq: Serial) {
|
||||
match self {
|
||||
PointerFocusTarget::WlSurface { surface, .. } => {
|
||||
TouchTarget::down(surface, seat, data, event, seq)
|
||||
}
|
||||
// TODO: implement TouchTarget for iced/CosmicWindow/CosmicStack/ResizeFork/Grabs
|
||||
PointerFocusTarget::WindowUI(_window) => {}
|
||||
PointerFocusTarget::StackUI(_stack) => {}
|
||||
PointerFocusTarget::ResizeFork(_fork) => {}
|
||||
}
|
||||
}
|
||||
|
||||
fn up(&self, seat: &Seat<State>, data: &mut State, event: &UpEvent, seq: Serial) {
|
||||
match self {
|
||||
PointerFocusTarget::WlSurface { surface, .. } => {
|
||||
TouchTarget::up(surface, seat, data, event, seq)
|
||||
}
|
||||
PointerFocusTarget::WindowUI(_window) => {}
|
||||
PointerFocusTarget::StackUI(_stack) => {}
|
||||
PointerFocusTarget::ResizeFork(_fork) => {}
|
||||
}
|
||||
}
|
||||
|
||||
fn motion(&self, seat: &Seat<State>, data: &mut State, event: &TouchMotionEvent, seq: Serial) {
|
||||
match self {
|
||||
PointerFocusTarget::WlSurface { surface, .. } => {
|
||||
TouchTarget::motion(surface, seat, data, event, seq)
|
||||
}
|
||||
PointerFocusTarget::WindowUI(_window) => {}
|
||||
PointerFocusTarget::StackUI(_stack) => {}
|
||||
PointerFocusTarget::ResizeFork(_fork) => {}
|
||||
}
|
||||
}
|
||||
|
||||
fn frame(&self, seat: &Seat<State>, data: &mut State, seq: Serial) {
|
||||
match self {
|
||||
PointerFocusTarget::WlSurface { surface, .. } => {
|
||||
TouchTarget::frame(surface, seat, data, seq)
|
||||
}
|
||||
PointerFocusTarget::WindowUI(_window) => {}
|
||||
PointerFocusTarget::StackUI(_stack) => {}
|
||||
PointerFocusTarget::ResizeFork(_fork) => {}
|
||||
}
|
||||
}
|
||||
|
||||
fn cancel(&self, seat: &Seat<State>, data: &mut State, seq: Serial) {
|
||||
match self {
|
||||
PointerFocusTarget::WlSurface { surface, .. } => {
|
||||
TouchTarget::cancel(surface, seat, data, seq)
|
||||
}
|
||||
PointerFocusTarget::WindowUI(_window) => {}
|
||||
PointerFocusTarget::StackUI(_stack) => {}
|
||||
PointerFocusTarget::ResizeFork(_fork) => {}
|
||||
}
|
||||
}
|
||||
|
||||
fn shape(&self, seat: &Seat<State>, data: &mut State, event: &ShapeEvent, seq: Serial) {
|
||||
match self {
|
||||
PointerFocusTarget::WlSurface { surface, .. } => {
|
||||
TouchTarget::shape(surface, seat, data, event, seq)
|
||||
}
|
||||
PointerFocusTarget::WindowUI(_window) => {}
|
||||
PointerFocusTarget::StackUI(_stack) => {}
|
||||
PointerFocusTarget::ResizeFork(_fork) => {}
|
||||
}
|
||||
}
|
||||
|
||||
fn orientation(
|
||||
&self,
|
||||
seat: &Seat<State>,
|
||||
data: &mut State,
|
||||
event: &OrientationEvent,
|
||||
seq: Serial,
|
||||
) {
|
||||
match self {
|
||||
PointerFocusTarget::WlSurface { surface, .. } => {
|
||||
TouchTarget::orientation(surface, seat, data, event, seq)
|
||||
}
|
||||
PointerFocusTarget::WindowUI(_window) => {}
|
||||
PointerFocusTarget::StackUI(_stack) => {}
|
||||
PointerFocusTarget::ResizeFork(_fork) => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl KeyboardTarget<State> for KeyboardFocusTarget {
|
||||
fn enter(
|
||||
&self,
|
||||
|
|
@ -498,7 +588,7 @@ impl KeyboardTarget<State> for KeyboardFocusTarget {
|
|||
}
|
||||
KeyboardFocusTarget::Group(_) => {}
|
||||
KeyboardFocusTarget::LayerSurface(l) => {
|
||||
KeyboardTarget::enter(l, seat, data, keys, serial)
|
||||
KeyboardTarget::enter(l.wl_surface(), seat, data, keys, serial)
|
||||
}
|
||||
KeyboardFocusTarget::Popup(p) => {
|
||||
KeyboardTarget::enter(p.wl_surface(), seat, data, keys, serial)
|
||||
|
|
@ -513,7 +603,9 @@ impl KeyboardTarget<State> for KeyboardFocusTarget {
|
|||
KeyboardFocusTarget::Element(w) => KeyboardTarget::leave(w, seat, data, serial),
|
||||
KeyboardFocusTarget::Fullscreen(w) => KeyboardTarget::leave(w, seat, data, serial),
|
||||
KeyboardFocusTarget::Group(_) => {}
|
||||
KeyboardFocusTarget::LayerSurface(l) => KeyboardTarget::leave(l, seat, data, serial),
|
||||
KeyboardFocusTarget::LayerSurface(l) => {
|
||||
KeyboardTarget::leave(l.wl_surface(), seat, data, serial)
|
||||
}
|
||||
KeyboardFocusTarget::Popup(p) => {
|
||||
KeyboardTarget::leave(p.wl_surface(), seat, data, serial)
|
||||
}
|
||||
|
|
@ -540,7 +632,7 @@ impl KeyboardTarget<State> for KeyboardFocusTarget {
|
|||
}
|
||||
KeyboardFocusTarget::Group(_) => {}
|
||||
KeyboardFocusTarget::LayerSurface(l) => {
|
||||
KeyboardTarget::key(l, seat, data, key, state, serial, time)
|
||||
KeyboardTarget::key(l.wl_surface(), seat, data, key, state, serial, time)
|
||||
}
|
||||
KeyboardFocusTarget::Popup(p) => {
|
||||
KeyboardTarget::key(p.wl_surface(), seat, data, key, state, serial, time)
|
||||
|
|
@ -566,7 +658,7 @@ impl KeyboardTarget<State> for KeyboardFocusTarget {
|
|||
}
|
||||
KeyboardFocusTarget::Group(_) => {}
|
||||
KeyboardFocusTarget::LayerSurface(l) => {
|
||||
KeyboardTarget::modifiers(l, seat, data, modifiers, serial)
|
||||
KeyboardTarget::modifiers(l.wl_surface(), seat, data, modifiers, serial)
|
||||
}
|
||||
KeyboardFocusTarget::Popup(p) => {
|
||||
KeyboardTarget::modifiers(p.wl_surface(), seat, data, modifiers, serial)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue