wayland.rs

 1mod client;
 2mod clipboard;
 3mod cursor;
 4mod display;
 5mod serial;
 6mod window;
 7
 8/// Contains Types for configuring layer_shell surfaces.
 9pub mod layer_shell;
10
11pub(crate) use client::*;
12
13use wayland_protocols::wp::cursor_shape::v1::client::wp_cursor_shape_device_v1::Shape;
14
15use gpui::CursorStyle;
16
17pub(super) fn to_shape(style: CursorStyle) -> Shape {
18    match style {
19        CursorStyle::Arrow => Shape::Default,
20        CursorStyle::IBeam => Shape::Text,
21        CursorStyle::Crosshair => Shape::Crosshair,
22        CursorStyle::ClosedHand => Shape::Grabbing,
23        CursorStyle::OpenHand => Shape::Grab,
24        CursorStyle::PointingHand => Shape::Pointer,
25        CursorStyle::ResizeLeft => Shape::WResize,
26        CursorStyle::ResizeRight => Shape::EResize,
27        CursorStyle::ResizeLeftRight => Shape::EwResize,
28        CursorStyle::ResizeUp => Shape::NResize,
29        CursorStyle::ResizeDown => Shape::SResize,
30        CursorStyle::ResizeUpDown => Shape::NsResize,
31        CursorStyle::ResizeUpLeftDownRight => Shape::NwseResize,
32        CursorStyle::ResizeUpRightDownLeft => Shape::NeswResize,
33        CursorStyle::ResizeColumn => Shape::ColResize,
34        CursorStyle::ResizeRow => Shape::RowResize,
35        CursorStyle::IBeamCursorForVerticalLayout => Shape::VerticalText,
36        CursorStyle::OperationNotAllowed => Shape::NotAllowed,
37        CursorStyle::DragLink => Shape::Alias,
38        CursorStyle::DragCopy => Shape::Copy,
39        CursorStyle::ContextualMenu => Shape::ContextMenu,
40        CursorStyle::None => {
41            #[cfg(debug_assertions)]
42            panic!("CursorStyle::None should be handled separately in the client");
43            #[cfg(not(debug_assertions))]
44            Shape::Default
45        }
46    }
47}