/** * Across a wayland compositor, there are multiple shells: It can be * a toplevel, or a layer_shell, or even something more meta like a drag * icon or highlight indicators when dragging windows around. * * This object lets us store values that represent these modes of operation * and keep track of what object is being represented. */ #ifndef _SWAY_SCENE_DESCRIPTOR_H #define _SWAY_SCENE_DESCRIPTOR_H #include enum sway_scene_descriptor_type { SWAY_SCENE_DESC_BUFFER_TIMER, SWAY_SCENE_DESC_NON_INTERACTIVE, SWAY_SCENE_DESC_CONTAINER, SWAY_SCENE_DESC_VIEW, SWAY_SCENE_DESC_LAYER_SHELL, SWAY_SCENE_DESC_XWAYLAND_UNMANAGED, SWAY_SCENE_DESC_POPUP, SWAY_SCENE_DESC_DRAG_ICON, }; bool scene_descriptor_assign(struct wlr_scene_node *node, enum sway_scene_descriptor_type type, void *data); void *scene_descriptor_try_get(struct wlr_scene_node *node, enum sway_scene_descriptor_type type); void scene_descriptor_destroy(struct wlr_scene_node *node, enum sway_scene_descriptor_type type); #endif