aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2022-11-14 09:52:13 +0100
committerSimon Ser <contact@emersion.fr>2022-11-14 09:52:13 +0100
commit9f793d350379872aeee56ea5c476adfeedc8bc88 (patch)
tree52114e48da730f402138869e636a32a43e94e042
parent4026da53f8a8e39d84dd695fc5afc5badfd4c649 (diff)
layer-shell-v1: specify version in constructor
This allows compositors to indicate which features they support, and is required to eventually make this API stable. References: https://github.com/swaywm/sway/issues/7260
-rw-r--r--include/wlr/types/wlr_layer_shell_v1.h3
-rw-r--r--types/wlr_layer_shell_v1.c8
2 files changed, 7 insertions, 4 deletions
diff --git a/include/wlr/types/wlr_layer_shell_v1.h b/include/wlr/types/wlr_layer_shell_v1.h
index 034ab7d2..4b231b7d 100644
--- a/include/wlr/types/wlr_layer_shell_v1.h
+++ b/include/wlr/types/wlr_layer_shell_v1.h
@@ -122,7 +122,8 @@ struct wlr_layer_surface_v1 {
void *data;
};
-struct wlr_layer_shell_v1 *wlr_layer_shell_v1_create(struct wl_display *display);
+struct wlr_layer_shell_v1 *wlr_layer_shell_v1_create(struct wl_display *display,
+ uint32_t version);
/**
* Notifies the layer surface to configure itself with this width/height. The
diff --git a/types/wlr_layer_shell_v1.c b/types/wlr_layer_shell_v1.c
index fa054d3c..5792b356 100644
--- a/types/wlr_layer_shell_v1.c
+++ b/types/wlr_layer_shell_v1.c
@@ -492,7 +492,10 @@ static void handle_display_destroy(struct wl_listener *listener, void *data) {
free(layer_shell);
}
-struct wlr_layer_shell_v1 *wlr_layer_shell_v1_create(struct wl_display *display) {
+struct wlr_layer_shell_v1 *wlr_layer_shell_v1_create(struct wl_display *display,
+ uint32_t version) {
+ assert(version <= LAYER_SHELL_VERSION);
+
struct wlr_layer_shell_v1 *layer_shell =
calloc(1, sizeof(struct wlr_layer_shell_v1));
if (!layer_shell) {
@@ -500,8 +503,7 @@ struct wlr_layer_shell_v1 *wlr_layer_shell_v1_create(struct wl_display *display)
}
struct wl_global *global = wl_global_create(display,
- &zwlr_layer_shell_v1_interface, LAYER_SHELL_VERSION,
- layer_shell, layer_shell_bind);
+ &zwlr_layer_shell_v1_interface, version, layer_shell, layer_shell_bind);
if (!global) {
free(layer_shell);
return NULL;