resize on border
This commit is contained in:
+10
-1
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user