resize on border

This commit is contained in:
2026-01-12 03:29:10 +07:00
parent 3a729bc3cf
commit 6ba17ad0b4
+10 -1
View File
@@ -7,10 +7,12 @@
struct absinthe_toplevel *absinthe_toplevel_at(struct absinthe_server *server, double lx, double ly, struct wlr_surface **surface, double *sx, double *sy) struct absinthe_toplevel *absinthe_toplevel_at(struct absinthe_server *server, double lx, double ly, struct wlr_surface **surface, double *sx, double *sy)
{ {
struct wlr_scene_node *node = wlr_scene_node_at(&server->scene->tree.node, lx, ly, sx, sy); struct wlr_scene_node *node = wlr_scene_node_at(&server->scene->tree.node, lx, ly, sx, sy);
if (!node || node->type != WLR_SCENE_NODE_BUFFER) { if (!node) {
return NULL; return NULL;
} }
switch (node->type) {
case WLR_SCENE_NODE_BUFFER:
struct wlr_scene_buffer *scene_buffer = wlr_scene_buffer_from_node(node); struct wlr_scene_buffer *scene_buffer = wlr_scene_buffer_from_node(node);
struct wlr_scene_surface *scene_surface = wlr_scene_surface_try_from_buffer(scene_buffer); struct wlr_scene_surface *scene_surface = wlr_scene_surface_try_from_buffer(scene_buffer);
if (!scene_surface) { if (!scene_surface) {
@@ -23,6 +25,13 @@ struct absinthe_toplevel *absinthe_toplevel_at(struct absinthe_server *server, d
tree = tree->node.parent; tree = tree->node.parent;
} }
return tree->node.data; return tree->node.data;
break;
case WLR_SCENE_NODE_RECT:
return node->data;
break;
default:
return NULL;
}
} }
void absinthe_toplevel_set_position(struct absinthe_toplevel *toplevel, int32_t x, int32_t y) void absinthe_toplevel_set_position(struct absinthe_toplevel *toplevel, int32_t x, int32_t y)