chore: Update smithay/libcosmic

This commit is contained in:
Victoria Brekenfeld 2024-03-26 16:45:30 +01:00 committed by Victoria Brekenfeld
parent 3cff426805
commit cf75bc1952
7 changed files with 207 additions and 170 deletions

View file

@ -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)
}
}
}
}

View file

@ -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)