aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/root.c
diff options
context:
space:
mode:
authorLibravatar Alexander Orzechowski <alex@ozal.ski>2023-11-23 10:09:48 -0500
committerLibravatar Kirill Primak <vyivel@eclair.cafe>2024-01-18 18:36:54 +0300
commit5b8b505af5d5925ae9e617ee8f3c7a0f9c43409d (patch)
treef420022ad3a48215f9182505c0060d91edcd848e /sway/tree/root.c
parentIntroduce sway_text_node (diff)
downloadsway-5b8b505af5d5925ae9e617ee8f3c7a0f9c43409d.tar.gz
sway-5b8b505af5d5925ae9e617ee8f3c7a0f9c43409d.tar.zst
sway-5b8b505af5d5925ae9e617ee8f3c7a0f9c43409d.zip
input: Query scene graph for relevant surface/node intersections
Diffstat (limited to 'sway/tree/root.c')
-rw-r--r--sway/tree/root.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/sway/tree/root.c b/sway/tree/root.c
index e4941566..fbdd9a96 100644
--- a/sway/tree/root.c
+++ b/sway/tree/root.c
@@ -9,6 +9,7 @@
9#include "sway/input/seat.h" 9#include "sway/input/seat.h"
10#include "sway/ipc-server.h" 10#include "sway/ipc-server.h"
11#include "sway/output.h" 11#include "sway/output.h"
12#include "sway/scene_descriptor.h"
12#include "sway/tree/arrange.h" 13#include "sway/tree/arrange.h"
13#include "sway/tree/container.h" 14#include "sway/tree/container.h"
14#include "sway/tree/root.h" 15#include "sway/tree/root.h"
@@ -44,13 +45,19 @@ struct sway_root *root_create(struct wl_display *wl_display) {
44 45
45 bool failed = false; 46 bool failed = false;
46 root->staging = alloc_scene_tree(&root_scene->tree, &failed); 47 root->staging = alloc_scene_tree(&root_scene->tree, &failed);
47 48 root->layer_tree = alloc_scene_tree(&root_scene->tree, &failed);
48 root->layers.tiling = alloc_scene_tree(&root_scene->tree, &failed); 49
49 root->layers.floating = alloc_scene_tree(&root_scene->tree, &failed); 50 root->layers.tiling = alloc_scene_tree(root->layer_tree, &failed);
50 root->layers.fullscreen = alloc_scene_tree(&root_scene->tree, &failed); 51 root->layers.floating = alloc_scene_tree(root->layer_tree, &failed);
51 root->layers.fullscreen_global = alloc_scene_tree(&root_scene->tree, &failed); 52 root->layers.fullscreen = alloc_scene_tree(root->layer_tree, &failed);
52 root->layers.seat = alloc_scene_tree(&root_scene->tree, &failed); 53 root->layers.fullscreen_global = alloc_scene_tree(root->layer_tree, &failed);
53 root->layers.session_lock = alloc_scene_tree(&root_scene->tree, &failed); 54 root->layers.seat = alloc_scene_tree(root->layer_tree, &failed);
55 root->layers.session_lock = alloc_scene_tree(root->layer_tree, &failed);
56
57 if (!failed && !scene_descriptor_assign(&root->layers.seat->node,
58 SWAY_SCENE_DESC_NON_INTERACTIVE, (void *)1)) {
59 failed = true;
60 }
54 61
55 if (failed) { 62 if (failed) {
56 wlr_scene_node_destroy(&root_scene->tree.node); 63 wlr_scene_node_destroy(&root_scene->tree.node);