layers: only define LAB_NR_LAYERS locally where needed

This commit is contained in:
Johan Malm 2022-03-02 20:39:46 +00:00
parent 98d5fd483d
commit d3918eec0a
4 changed files with 8 additions and 6 deletions

View file

@ -188,13 +188,14 @@ struct server {
struct menu *menu_current; struct menu *menu_current;
}; };
#define LAB_NR_LAYERS (4)
struct output { struct output {
struct wl_list link; /* server::outputs */ struct wl_list link; /* server::outputs */
struct server *server; struct server *server;
struct wlr_output *wlr_output; struct wlr_output *wlr_output;
struct wlr_scene_output *scene_output; struct wlr_scene_output *scene_output;
struct wl_list layers[4]; struct wl_list layers[LAB_NR_LAYERS];
struct wlr_scene_tree *layer_tree[4]; struct wlr_scene_tree *layer_tree[LAB_NR_LAYERS];
struct wlr_box usable_area; struct wlr_box usable_area;
struct lab_data_buffer *osd_buffer; struct lab_data_buffer *osd_buffer;
@ -202,6 +203,7 @@ struct output {
struct wl_listener destroy; struct wl_listener destroy;
struct wl_listener frame; struct wl_listener frame;
}; };
#undef LAB_NR_LAYERS
enum view_type { enum view_type {
LAB_XDG_SHELL_VIEW, LAB_XDG_SHELL_VIEW,

View file

@ -7,8 +7,6 @@
struct server; struct server;
struct output; struct output;
#define LAB_NR_LAYERS (4)
struct lab_layer_surface { struct lab_layer_surface {
struct wl_list link; /* output::layers */ struct wl_list link; /* output::layers */
struct wlr_scene_layer_surface_v1 *scene_layer_surface; struct wlr_scene_layer_surface_v1 *scene_layer_surface;

View file

@ -34,7 +34,8 @@ layers_arrange(struct output *output)
return; return;
} }
for (int i = 0; i < LAB_NR_LAYERS; i++) { int nr_layers = sizeof(output->layers) / sizeof(output->layers[0]);
for (int i = 0; i < nr_layers; i++) {
struct lab_layer_surface *lab_layer_surface; struct lab_layer_surface *lab_layer_surface;
wl_list_for_each(lab_layer_surface, &output->layers[i], link) { wl_list_for_each(lab_layer_surface, &output->layers[i], link) {
struct wlr_scene_layer_surface_v1 *scene_layer_surface = struct wlr_scene_layer_surface_v1 *scene_layer_surface =

View file

@ -111,7 +111,8 @@ new_output_notify(struct wl_listener *listener, void *data)
output->frame.notify = output_frame_notify; output->frame.notify = output_frame_notify;
wl_signal_add(&wlr_output->events.frame, &output->frame); wl_signal_add(&wlr_output->events.frame, &output->frame);
for (int i = 0; i < LAB_NR_LAYERS; i++) { int nr_layers = sizeof(output->layers) / sizeof(output->layers[0]);
for (int i = 0; i < nr_layers; i++) {
wl_list_init(&output->layers[i]); wl_list_init(&output->layers[i]);
output->layer_tree[i] = output->layer_tree[i] =
wlr_scene_tree_create(&server->scene->node); wlr_scene_tree_create(&server->scene->node);