scene_graph: Port xwayland

This commit is contained in:
Alexander Orzechowski 2022-05-21 14:09:01 -04:00 committed by Kirill Primak
parent c3615a8b57
commit 6fcd702c97
8 changed files with 34 additions and 69 deletions

View file

@ -143,12 +143,6 @@ void output_view_for_each_popup_surface(struct sway_output *output,
struct sway_view *view, sway_surface_iterator_func_t iterator,
void *user_data);
#if HAVE_XWAYLAND
void output_unmanaged_for_each_surface(struct sway_output *output,
struct wl_list *unmanaged, sway_surface_iterator_func_t iterator,
void *user_data);
#endif
void output_for_each_workspace(struct sway_output *output,
void (*f)(struct sway_workspace *ws, void *data), void *data);

View file

@ -7,6 +7,7 @@ enum sway_scene_descriptor_type {
SWAY_SCENE_DESC_NON_INTERACTIVE,
SWAY_SCENE_DESC_CONTAINER,
SWAY_SCENE_DESC_LAYER_SHELL,
SWAY_SCENE_DESC_XWAYLAND_UNMANAGED,
SWAY_SCENE_DESC_POPUP,
SWAY_SCENE_DESC_DRAG_ICON,
};

View file

@ -42,16 +42,15 @@ struct sway_root {
struct wlr_scene_tree *shell_top;
struct wlr_scene_tree *fullscreen;
struct wlr_scene_tree *fullscreen_global;
#if HAVE_XWAYLAND
struct wlr_scene_tree *unmanaged;
#endif
struct wlr_scene_tree *shell_overlay;
struct wlr_scene_tree *popup;
struct wlr_scene_tree *seat;
struct wlr_scene_tree *session_lock;
} layers;
#if HAVE_XWAYLAND
struct wl_list xwayland_unmanaged; // sway_xwayland_unmanaged::link
#endif
// Includes disabled outputs
struct wl_list all_outputs; // sway_output::link

View file

@ -146,6 +146,8 @@ struct sway_xdg_shell_view {
struct sway_xwayland_view {
struct sway_view view;
struct wlr_scene_surface *surface_scene;
struct wl_listener commit;
struct wl_listener request_move;
struct wl_listener request_resize;
@ -168,14 +170,12 @@ struct sway_xwayland_view {
struct sway_xwayland_unmanaged {
struct wlr_xwayland_surface *wlr_xwayland_surface;
struct wl_list link;
int lx, ly;
struct wlr_scene_surface *surface_scene;
struct wl_listener request_activate;
struct wl_listener request_configure;
struct wl_listener request_fullscreen;
struct wl_listener commit;
struct wl_listener set_geometry;
struct wl_listener map;
struct wl_listener unmap;