diff options
author | Alexander Orzechowski <alex@ozal.ski> | 2024-01-18 10:02:41 -0500 |
---|---|---|
committer | Kirill Primak <vyivel@eclair.cafe> | 2024-01-18 18:36:54 +0300 |
commit | 6e5fc4c2aafd211323c6037aa868c075852bfe15 (patch) | |
tree | bff87217414fa981d48244c5bc1b253817646783 /include/sway | |
parent | b38ed8b4792928dca3e1580e8160792ea41e25c4 (diff) |
scene_graph: Port xwayland
Diffstat (limited to 'include/sway')
-rw-r--r-- | include/sway/output.h | 6 | ||||
-rw-r--r-- | include/sway/scene_descriptor.h | 1 | ||||
-rw-r--r-- | include/sway/tree/root.h | 7 | ||||
-rw-r--r-- | include/sway/tree/view.h | 8 |
4 files changed, 9 insertions, 13 deletions
diff --git a/include/sway/output.h b/include/sway/output.h index ea5d8f47..e2023306 100644 --- a/include/sway/output.h +++ b/include/sway/output.h @@ -141,12 +141,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); diff --git a/include/sway/scene_descriptor.h b/include/sway/scene_descriptor.h index 43991f77..2649d7c2 100644 --- a/include/sway/scene_descriptor.h +++ b/include/sway/scene_descriptor.h @@ -16,6 +16,7 @@ enum sway_scene_descriptor_type { 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, }; diff --git a/include/sway/tree/root.h b/include/sway/tree/root.h index 2f717bae..15df0f55 100644 --- a/include/sway/tree/root.h +++ b/include/sway/tree/root.h @@ -47,16 +47,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 diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 467d912f..8493958e 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -147,6 +147,8 @@ struct sway_xdg_shell_view { struct sway_xwayland_view { struct sway_view view; + struct wlr_scene_tree *surface_tree; + struct wl_listener commit; struct wl_listener request_move; struct wl_listener request_resize; @@ -168,18 +170,18 @@ struct sway_xwayland_view { struct wl_listener unmap; struct wl_listener destroy; struct wl_listener override_redirect; + + struct wl_listener surface_tree_destroy; }; 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 associate; struct wl_listener dissociate; |