mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
layer: use scene-graph API more fully
...and thus simplify the usage of wlr_scene_node_at(). Specifically:
- desktop.c: in get_cursor_context() use node-description for
layer-surfaces and layer-popups. This lays the foundations for a
pointer-enter-event being sent when a new layer-surfaces appears under
the pointer (even if the pointer doesn not move).
- layers.c:
* Iterate over `struct wlr_scene_tree *layer_tree[]` rather than
`struct wl_list layers[]` when arranging layers to avoid surfaces
being out of sync with nodes
* Set signal handlers after scene node creation to avoid configure
race conditions
* Handle scene-node destroy event rather than event of
`struct wlr_layer_surface_v1`
* Arrange layers on map and unmap
* Handle client request for layer-change
Fixes issue #667
This commit is contained in:
parent
e39fd341ec
commit
9dbac2e06f
3 changed files with 108 additions and 90 deletions
|
|
@ -11,7 +11,7 @@ struct lab_layer_surface {
|
|||
struct wl_list link; /* output::layers */
|
||||
struct wlr_scene_layer_surface_v1 *scene_layer_surface;
|
||||
|
||||
struct wl_listener destroy;
|
||||
struct wl_listener node_destroy;
|
||||
struct wl_listener map;
|
||||
struct wl_listener unmap;
|
||||
struct wl_listener surface_commit;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue