diff options
author | Simon Ser <contact@emersion.fr> | 2022-11-14 09:52:13 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2022-11-14 09:52:13 +0100 |
commit | 9f793d350379872aeee56ea5c476adfeedc8bc88 (patch) | |
tree | 52114e48da730f402138869e636a32a43e94e042 | |
parent | 4026da53f8a8e39d84dd695fc5afc5badfd4c649 (diff) | |
download | wlroots-9f793d350379872aeee56ea5c476adfeedc8bc88.tar.xz |
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.h | 3 | ||||
-rw-r--r-- | types/wlr_layer_shell_v1.c | 8 |
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; |