aboutsummaryrefslogtreecommitdiff
path: root/include/sway
diff options
context:
space:
mode:
authorAlexander Orzechowski <alex@ozal.ski>2024-01-18 10:02:41 -0500
committerKirill Primak <vyivel@eclair.cafe>2024-01-18 18:36:54 +0300
commit6e5fc4c2aafd211323c6037aa868c075852bfe15 (patch)
treebff87217414fa981d48244c5bc1b253817646783 /include/sway
parentb38ed8b4792928dca3e1580e8160792ea41e25c4 (diff)
scene_graph: Port xwayland
Diffstat (limited to 'include/sway')
-rw-r--r--include/sway/output.h6
-rw-r--r--include/sway/scene_descriptor.h1
-rw-r--r--include/sway/tree/root.h7
-rw-r--r--include/sway/tree/view.h8
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;