Update smithay and wayland-rs

Includes updates for split between `smithay::wayland::output` and
`smithay::output`.
This commit is contained in:
Ian Douglas Scott 2022-09-09 20:00:00 -07:00
parent e1894ef425
commit 7b670afc36
25 changed files with 139 additions and 141 deletions

View file

@ -27,6 +27,7 @@ use smithay::{
session::{auto::AutoSession, Session, Signal},
udev::{all_gpus, primary_gpu, UdevBackend, UdevEvent},
},
output::{Mode as OutputMode, Output, PhysicalProperties, Subpixel},
reexports::{
calloop::{
timer::{TimeoutAction, Timer},
@ -35,19 +36,13 @@ use smithay::{
drm::control::{connector, crtc, Device as ControlDevice, ModeTypeFlags},
input::Libinput,
nix::{fcntl::OFlag, sys::stat::dev_t},
wayland_server::{
protocol::{wl_output, wl_surface::WlSurface},
DisplayHandle, Resource,
},
wayland_server::{protocol::wl_surface::WlSurface, DisplayHandle, Resource},
},
utils::{
signaling::{Linkable, SignalToken, Signaler},
Size,
},
wayland::{
dmabuf::DmabufGlobal,
output::{Mode as OutputMode, Output, PhysicalProperties},
Size, Transform,
},
wayland::dmabuf::DmabufGlobal,
};
use std::{
@ -650,7 +645,7 @@ impl Device {
PhysicalProperties {
size: (phys_w as i32, phys_h as i32).into(),
// TODO: We need to read that from the connector properties
subpixel: wl_output::Subpixel::Unknown,
subpixel: Subpixel::Unknown,
make: edid_info.manufacturer,
model: edid_info.model,
},
@ -668,7 +663,7 @@ impl Device {
output.change_current_state(
Some(output_mode),
// TODO: Readout property for monitor rotation
Some(wl_output::Transform::Normal),
Some(Transform::Normal),
None,
Some(position.into()),
);

View file

@ -29,8 +29,9 @@ use smithay::{
utils::damage_from_surface_tree,
Window,
},
output::Output,
utils::{Physical, Point, Rectangle, Scale, Transform},
wayland::{output::Output, shell::wlr_layer::Layer as WlrLayer},
wayland::shell::wlr_layer::Layer as WlrLayer,
};
pub mod cursor;

View file

@ -14,14 +14,12 @@ use smithay::{
winit::{self, WinitEvent, WinitGraphicsBackend, WinitVirtualDevice},
},
desktop::layer_map_for_output,
output::{Mode, Output, PhysicalProperties, Scale, Subpixel},
reexports::{
calloop::{ping, EventLoop},
wayland_server::{
protocol::wl_output::{Subpixel, Transform},
DisplayHandle,
},
wayland_server::DisplayHandle,
},
wayland::output::{Mode, Output, PhysicalProperties, Scale},
utils::Transform,
};
use std::cell::RefCell;

View file

@ -17,15 +17,13 @@ use smithay::{
x11::{Window, WindowBuilder, X11Backend, X11Event, X11Handle, X11Input, X11Surface},
},
desktop::layer_map_for_output,
output::{Mode, Output, PhysicalProperties, Scale, Subpixel},
reexports::{
calloop::{ping, EventLoop, LoopHandle},
gbm::{Device as GbmDevice, FdWrapper},
wayland_server::{
protocol::wl_output::{Subpixel, Transform},
DisplayHandle,
},
wayland_server::DisplayHandle,
},
wayland::output::{Mode, Output, PhysicalProperties, Scale},
utils::Transform,
};
use std::{
cell::RefCell,

View file

@ -8,6 +8,7 @@ use serde::{Deserialize, Serialize};
pub use smithay::{
backend::input::KeyState,
input::keyboard::{keysyms as KeySyms, Keysym, ModifiersState},
output::{Mode, Output},
reexports::{
calloop::LoopHandle,
input::{
@ -16,7 +17,6 @@ pub use smithay::{
},
},
utils::{Logical, Physical, Point, Size, Transform},
wayland::output::{Mode, Output},
};
use std::{cell::RefCell, collections::HashMap, fs::OpenOptions, path::PathBuf};

View file

@ -6,9 +6,9 @@ use serde::{Deserialize, Serialize};
pub use smithay::{
backend::input::KeyState,
input::keyboard::{keysyms as KeySyms, Keysym, XkbConfig as WlXkbConfig},
output::{Mode, Output},
reexports::input::{AccelProfile, ClickMethod, ScrollMethod, TapButtonMap},
utils::{Logical, Physical, Point, Size, Transform},
wayland::output::{Mode, Output},
};
use xkbcommon::xkb;

View file

@ -17,9 +17,10 @@ use smithay::{
pointer::{AxisFrame, ButtonEvent, CursorImageStatus, MotionEvent},
Seat, SeatState,
},
output::Output,
reexports::wayland_server::{protocol::wl_surface::WlSurface, DisplayHandle},
utils::{Buffer, Logical, Point, Rectangle, Size, SERIAL_COUNTER},
wayland::{output::Output, shell::wlr_layer::Layer as WlrLayer},
wayland::shell::wlr_layer::Layer as WlrLayer,
};
use std::{cell::RefCell, collections::HashMap};

View file

@ -18,12 +18,12 @@ use smithay::{
},
Seat,
},
output::Output,
reexports::{
wayland_protocols::xdg::shell::server::xdg_toplevel::State as XdgState,
wayland_server::protocol::wl_surface::WlSurface,
},
utils::{IsAlive, Logical, Physical, Point, Rectangle, Scale, Serial},
wayland::output::Output,
};
use std::cell::RefCell;

View file

@ -6,13 +6,12 @@ use smithay::{
pointer::{Focus, GrabStartData as PointerGrabStartData},
Seat,
},
output::Output,
reexports::wayland_protocols::xdg::shell::server::xdg_toplevel::{
ResizeEdge, State as XdgState,
},
utils::{IsAlive, Logical, Point, Rectangle, Serial},
wayland::{
compositor::with_states, output::Output, shell::xdg::XdgToplevelSurfaceRoleAttributes,
},
wayland::{compositor::with_states, shell::xdg::XdgToplevelSurfaceRoleAttributes},
};
use std::{collections::HashSet, sync::Mutex};

View file

@ -5,9 +5,8 @@ use regex::RegexSet;
use smithay::{
desktop::{Space, Window},
input::Seat,
wayland::{
compositor::with_states, output::Output, shell::xdg::XdgToplevelSurfaceRoleAttributes,
},
output::Output,
wayland::{compositor::with_states, shell::xdg::XdgToplevelSurfaceRoleAttributes},
};
use std::sync::Mutex;

View file

@ -3,11 +3,11 @@ use std::{cell::Cell, mem::MaybeUninit};
use smithay::{
desktop::{layer_map_for_output, LayerSurface, PopupManager, Window, WindowSurfaceType},
input::{pointer::MotionEvent, Seat},
output::Output,
reexports::wayland_server::{protocol::wl_surface::WlSurface, DisplayHandle},
utils::{Logical, Point, Rectangle, SERIAL_COUNTER},
wayland::{
compositor::with_states,
output::Output,
shell::{
wlr_layer::{
KeyboardInteractivity, Layer, LayerSurfaceCachedState, WlrLayerShellState,

View file

@ -7,12 +7,12 @@ use crate::{
use smithay::{
desktop::{Kind, Space, Window, WindowSurfaceType},
input::{pointer::GrabStartData as PointerGrabStartData, Seat},
output::Output,
reexports::{
wayland_protocols::xdg::shell::server::xdg_toplevel::{self, ResizeEdge},
wayland_server::{protocol::wl_surface::WlSurface, DisplayHandle},
},
utils::{IsAlive, Serial},
wayland::output::Output,
};
use std::collections::HashMap;

View file

@ -14,6 +14,7 @@ use crate::{
use smithay::{
backend::drm::DrmNode,
input::{Seat, SeatState},
output::{Mode as OutputMode, Output, Scale},
reexports::{
calloop::{LoopHandle, LoopSignal},
wayland_server::{
@ -23,12 +24,8 @@ use smithay::{
},
utils::{Buffer, Size},
wayland::{
compositor::CompositorState,
data_device::DataDeviceState,
dmabuf::DmabufState,
output::{Mode as OutputMode, Output, OutputManagerState, Scale},
primary_selection::PrimarySelectionState,
shm::ShmState,
compositor::CompositorState, data_device::DataDeviceState, dmabuf::DmabufState,
output::OutputManagerState, primary_selection::PrimarySelectionState, shm::ShmState,
viewporter::ViewporterState,
},
};

View file

@ -1,8 +1,8 @@
use crate::input::{ActiveOutput, SeatId};
use smithay::{
input::Seat,
output::Output,
utils::{Logical, Rectangle, Transform},
wayland::output::Output,
};
use std::cell::RefCell;

View file

@ -16,12 +16,12 @@ use smithay::{
},
desktop::{draw_window, draw_window_popups, space::RenderElement, Kind, Window},
input::pointer::CursorImageStatus,
output::Output,
reexports::wayland_server::{protocol::wl_output::WlOutput, DisplayHandle, Resource},
utils::{IsAlive, Size, Transform},
wayland::{
compositor::{get_children, with_states, SurfaceAttributes},
dmabuf::get_dmabuf,
output::Output,
},
};

View file

@ -4,15 +4,13 @@ use crate::utils::prelude::*;
use smithay::{
delegate_layer_shell,
desktop::{LayerSurface, PopupKind},
output::Output,
reexports::wayland_server::protocol::wl_output::WlOutput,
wayland::{
output::Output,
shell::{
wlr_layer::{
Layer, LayerSurface as WlrLayerSurface, WlrLayerShellHandler, WlrLayerShellState,
},
xdg::PopupSurface,
wayland::shell::{
wlr_layer::{
Layer, LayerSurface as WlrLayerSurface, WlrLayerShellHandler, WlrLayerShellState,
},
xdg::PopupSurface,
},
};

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
use smithay::wayland::output::Output;
use smithay::output::Output;
use crate::{
config::OutputConfig,

View file

@ -4,24 +4,21 @@ use crate::utils::prelude::*;
use smithay::{
delegate_xdg_shell,
desktop::{
Kind, PopupGrab, PopupKeyboardGrab, PopupKind, PopupPointerGrab, PopupUngrabStrategy,
Window, WindowSurfaceType,
find_popup_root_surface, Kind, PopupGrab, PopupKeyboardGrab, PopupKind, PopupPointerGrab,
PopupUngrabStrategy, Window, WindowSurfaceType,
},
input::{
pointer::{Focus, GrabStartData as PointerGrabStartData},
Seat,
},
output::Output,
reexports::{
wayland_protocols::xdg::shell::server::xdg_toplevel,
wayland_server::protocol::{wl_output::WlOutput, wl_seat::WlSeat, wl_surface::WlSurface},
},
utils::Serial,
wayland::{
output::Output,
shell::xdg::{
Configure, PopupSurface, PositionerState, ToplevelSurface, XdgShellHandler,
XdgShellState,
},
wayland::shell::xdg::{
Configure, PopupSurface, PositionerState, ToplevelSurface, XdgShellHandler, XdgShellState,
},
};
use std::cell::Cell;
@ -92,49 +89,46 @@ impl XdgShellHandler for State {
fn grab(&mut self, surface: PopupSurface, seat: WlSeat, serial: Serial) {
let seat = Seat::from_resource(&seat).unwrap();
let dh = &self.common.display_handle;
let ret =
self.common
let kind = PopupKind::Xdg(surface);
if let Ok(root) = find_popup_root_surface(&kind) {
let ret = self
.common
.shell
.popups
.grab_popup(dh, surface.wl_surface().clone(), &seat, serial);
.grab_popup(root, kind, &seat, serial);
if let Ok(mut grab) = ret {
if let Some(keyboard) = seat.get_keyboard() {
if keyboard.is_grabbed()
&& !(keyboard.has_grab(serial)
|| keyboard.has_grab(grab.previous_serial().unwrap_or(serial)))
{
grab.ungrab(PopupUngrabStrategy::All);
return;
if let Ok(mut grab) = ret {
if let Some(keyboard) = seat.get_keyboard() {
if keyboard.is_grabbed()
&& !(keyboard.has_grab(serial)
|| keyboard.has_grab(grab.previous_serial().unwrap_or(serial)))
{
grab.ungrab(PopupUngrabStrategy::All);
return;
}
Common::set_focus(self, grab.current_grab().as_ref(), &seat, Some(serial));
keyboard.set_grab(PopupKeyboardGrab::new(&grab), serial);
}
Common::set_focus(
self,
grab.current_grab().as_ref().map(|x| &x.0),
&seat,
Some(serial),
);
keyboard.set_grab(PopupKeyboardGrab::new(&grab), serial);
}
if let Some(pointer) = seat.get_pointer() {
if pointer.is_grabbed()
&& !(pointer.has_grab(serial)
|| pointer
.has_grab(grab.previous_serial().unwrap_or_else(|| grab.serial())))
{
grab.ungrab(PopupUngrabStrategy::All);
return;
if let Some(pointer) = seat.get_pointer() {
if pointer.is_grabbed()
&& !(pointer.has_grab(serial)
|| pointer
.has_grab(grab.previous_serial().unwrap_or_else(|| grab.serial())))
{
grab.ungrab(PopupUngrabStrategy::All);
return;
}
pointer.set_grab(self, PopupPointerGrab::new(&grab), serial, Focus::Keep);
}
pointer.set_grab(self, PopupPointerGrab::new(&grab), serial, Focus::Keep);
}
seat.user_data()
.insert_if_missing(|| PopupGrabData::new(None));
seat.user_data()
.get::<PopupGrabData>()
.unwrap()
.set(Some(grab));
seat.user_data()
.insert_if_missing(|| PopupGrabData::new(None));
seat.user_data()
.get::<PopupGrabData>()
.unwrap()
.set(Some(grab));
}
}
}

View file

@ -6,6 +6,7 @@ use smithay::{
layer_map_for_output, LayerSurface, PopupKind, PopupManager, Space, Window,
WindowSurfaceType,
},
output::Output,
reexports::{
wayland_protocols::xdg::shell::server::xdg_positioner::{
Anchor, ConstraintAdjustment, Gravity,
@ -15,7 +16,6 @@ use smithay::{
utils::{Logical, Point, Rectangle},
wayland::{
compositor::{get_role, with_states},
output::Output,
shell::xdg::{
PopupSurface, PositionerState, SurfaceCachedState, XdgPopupSurfaceRoleAttributes,
XDG_POPUP_ROLE,

View file

@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-3.0-only
use smithay::{
output::{Mode, Output, OutputData},
reexports::{
wayland_protocols_wlr::output_management::v1::server::{
zwlr_output_configuration_head_v1::{self, ZwlrOutputConfigurationHeadV1},
@ -16,7 +17,6 @@ use smithay::{
},
},
utils::{Logical, Physical, Point, Size, Transform},
wayland::output::{Mode, Output, OutputData},
};
use std::{
convert::{TryFrom, TryInto},
@ -734,7 +734,7 @@ where
if inner.enabled {
let point = output.current_location();
instance.head.position(point.x, point.y);
instance.head.transform(output.current_transform());
instance.head.transform(output.current_transform().into());
instance
.head
.scale(output.current_scale().fractional_scale());
@ -759,10 +759,10 @@ macro_rules! delegate_output_configuration {
smithay::reexports::wayland_protocols_wlr::output_management::v1::server::zwlr_output_manager_v1::ZwlrOutputManagerV1: $crate::wayland::protocols::output_configuration::OutputMngrInstanceData
] => $crate::wayland::protocols::output_configuration::OutputConfigurationState<Self>);
smithay::reexports::wayland_server::delegate_dispatch!($(@< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)? $ty: [
smithay::reexports::wayland_protocols_wlr::output_management::v1::server::zwlr_output_head_v1::ZwlrOutputHeadV1: smithay::wayland::output::Output
smithay::reexports::wayland_protocols_wlr::output_management::v1::server::zwlr_output_head_v1::ZwlrOutputHeadV1: smithay::output::Output
] => $crate::wayland::protocols::output_configuration::OutputConfigurationState<Self>);
smithay::reexports::wayland_server::delegate_dispatch!($(@< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)? $ty: [
smithay::reexports::wayland_protocols_wlr::output_management::v1::server::zwlr_output_mode_v1::ZwlrOutputModeV1: smithay::wayland::output::Mode
smithay::reexports::wayland_protocols_wlr::output_management::v1::server::zwlr_output_mode_v1::ZwlrOutputModeV1: smithay::output::Mode
] => $crate::wayland::protocols::output_configuration::OutputConfigurationState<Self>);
smithay::reexports::wayland_server::delegate_dispatch!($(@< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)? $ty: [
smithay::reexports::wayland_protocols_wlr::output_management::v1::server::zwlr_output_configuration_v1::ZwlrOutputConfigurationV1: $crate::wayland::protocols::output_configuration::PendingConfiguration

View file

@ -4,6 +4,7 @@ use std::{collections::HashMap, sync::Mutex};
use smithay::{
desktop::Window,
output::Output,
reexports::{
wayland_protocols::xdg::shell::server::xdg_toplevel,
wayland_server::{
@ -13,9 +14,7 @@ use smithay::{
},
},
utils::{IsAlive, Logical, Rectangle},
wayland::{
compositor::with_states, output::Output, shell::xdg::XdgToplevelSurfaceRoleAttributes,
},
wayland::{compositor::with_states, shell::xdg::XdgToplevelSurfaceRoleAttributes},
};
use super::workspace::{WorkspaceHandle, WorkspaceHandler, WorkspaceState};

View file

@ -3,13 +3,13 @@
use smithay::{
desktop::Window,
input::{Seat, SeatHandler},
output::Output,
reexports::wayland_server::{
backend::{ClientId, GlobalId, ObjectId},
protocol::wl_surface::WlSurface,
Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource,
},
utils::{Logical, Rectangle},
wayland::output::Output,
};
pub use cosmic_protocols::toplevel_management::v1::server::zcosmic_toplevel_manager_v1::ZcosmicToplelevelManagementCapabilitiesV1 as ManagementCapabilities;

View file

@ -3,11 +3,11 @@
use std::{collections::HashSet, sync::Mutex};
use smithay::{
output::Output,
reexports::wayland_server::{
backend::{ClientData, ClientId, GlobalId, ObjectId},
Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource,
},
wayland::output::Output,
};
use cosmic_protocols::workspace::v1::server::{