]> git.mdlowis.com Git - proto/labwc.git/commitdiff
layers: only define LAB_NR_LAYERS locally where needed
authorJohan Malm <jgm323@gmail.com>
Wed, 2 Mar 2022 20:39:46 +0000 (20:39 +0000)
committerJohan Malm <jgm323@gmail.com>
Wed, 2 Mar 2022 20:39:46 +0000 (20:39 +0000)
include/labwc.h
include/layers.h
src/layers.c
src/output.c

index 7691c9d0a4a0b41cdf2bd82b0a60c811b6ac8d9b..8f5aa9894c01522d0620abdc887c7b8ea23d981d 100644 (file)
@@ -188,13 +188,14 @@ struct server {
        struct menu *menu_current;
 };
 
+#define LAB_NR_LAYERS (4)
 struct output {
        struct wl_list link; /* server::outputs */
        struct server *server;
        struct wlr_output *wlr_output;
        struct wlr_scene_output *scene_output;
-       struct wl_list layers[4];
-       struct wlr_scene_tree *layer_tree[4];
+       struct wl_list layers[LAB_NR_LAYERS];
+       struct wlr_scene_tree *layer_tree[LAB_NR_LAYERS];
        struct wlr_box usable_area;
 
        struct lab_data_buffer *osd_buffer;
@@ -202,6 +203,7 @@ struct output {
        struct wl_listener destroy;
        struct wl_listener frame;
 };
+#undef LAB_NR_LAYERS
 
 enum view_type {
        LAB_XDG_SHELL_VIEW,
index 033b89fdc05aff4fff9eca7a8da2515e8d0856d1..f7d3f2b262808cde93be70410938f6674114c8d3 100644 (file)
@@ -7,8 +7,6 @@
 struct server;
 struct output;
 
-#define LAB_NR_LAYERS (4)
-
 struct lab_layer_surface {
        struct wl_list link; /* output::layers */
        struct wlr_scene_layer_surface_v1 *scene_layer_surface;
index 2cdba567119a6874ade680bc56918c7b24e488f7..1d6b2b6d7042f13fbe5b784244d0f9f3735aca5a 100644 (file)
@@ -34,7 +34,8 @@ layers_arrange(struct output *output)
                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;
                wl_list_for_each(lab_layer_surface, &output->layers[i], link) {
                        struct wlr_scene_layer_surface_v1 *scene_layer_surface =
index 215a261162d8abc9eeedf05753abc5c0168d09d4..c9981af3d30ca130e0fc835e449a36fa91ca7922 100644 (file)
@@ -111,7 +111,8 @@ new_output_notify(struct wl_listener *listener, void *data)
        output->frame.notify = output_frame_notify;
        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]);
                output->layer_tree[i] =
                        wlr_scene_tree_create(&server->scene->node);