scene_graph: Port xdg_shell

This commit is contained in:
Alexander Orzechowski 2023-12-06 14:28:59 -05:00 committed by Kirill Primak
parent 08c484f46f
commit b38ed8b479
6 changed files with 81 additions and 372 deletions

View file

@ -80,6 +80,7 @@ struct sway_node *node_at_coords(
while (true) {
struct sway_container *con = scene_descriptor_try_get(current,
SWAY_SCENE_DESC_CONTAINER);
if (!con) {
struct sway_view *view = scene_descriptor_try_get(current,
SWAY_SCENE_DESC_VIEW);
@ -88,12 +89,18 @@ struct sway_node *node_at_coords(
}
}
if (con) {
if (!con->view || con->view->surface) {
return &con->node;
if (!con) {
struct sway_xdg_popup *popup =
scene_descriptor_try_get(current, SWAY_SCENE_DESC_POPUP);
if (popup) {
con = popup->view->container;
}
}
if (con && (!con->view || con->view->surface)) {
return &con->node;
}
if (scene_descriptor_try_get(current, SWAY_SCENE_DESC_LAYER_SHELL)) {
// We don't want to feed through the current workspace on
// layer shells