mirror of
https://github.com/swaywm/sway.git
synced 2025-11-02 09:01:40 -05:00
input: Query scene graph for relevant surface/node intersections
This commit is contained in:
parent
946fc80945
commit
5b8b505af5
7 changed files with 93 additions and 412 deletions
|
|
@ -12,6 +12,9 @@
|
|||
|
||||
enum sway_scene_descriptor_type {
|
||||
SWAY_SCENE_DESC_BUFFER_TIMER,
|
||||
SWAY_SCENE_DESC_NON_INTERACTIVE,
|
||||
SWAY_SCENE_DESC_CONTAINER,
|
||||
SWAY_SCENE_DESC_VIEW,
|
||||
SWAY_SCENE_DESC_DRAG_ICON,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -172,19 +172,6 @@ void container_begin_destroy(struct sway_container *con);
|
|||
struct sway_container *container_find_child(struct sway_container *container,
|
||||
bool (*test)(struct sway_container *view, void *data), void *data);
|
||||
|
||||
/**
|
||||
* Find a container at the given coordinates. Returns the surface and
|
||||
* surface-local coordinates of the given layout coordinates if the container
|
||||
* is a view and the view contains a surface at those coordinates.
|
||||
*/
|
||||
struct sway_container *container_at(struct sway_workspace *workspace,
|
||||
double lx, double ly, struct wlr_surface **surface,
|
||||
double *sx, double *sy);
|
||||
|
||||
struct sway_container *tiling_container_at(
|
||||
struct sway_node *parent, double lx, double ly,
|
||||
struct wlr_surface **surface, double *sx, double *sy);
|
||||
|
||||
void container_for_each_child(struct sway_container *container,
|
||||
void (*f)(struct sway_container *container, void *data), void *data);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,10 @@ struct sway_root {
|
|||
// staging node will be visible.
|
||||
struct wlr_scene_tree *staging;
|
||||
|
||||
// tree containing all layers the compositor will render. Cursor handling
|
||||
// will end up iterating this tree.
|
||||
struct wlr_scene_tree *layer_tree;
|
||||
|
||||
struct {
|
||||
struct wlr_scene_tree *tiling;
|
||||
struct wlr_scene_tree *floating;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue