aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--protocols/wlr-layer-shell-unstable-v1.xml6
-rw-r--r--swaybg/main.c13
2 files changed, 13 insertions, 6 deletions
diff --git a/protocols/wlr-layer-shell-unstable-v1.xml b/protocols/wlr-layer-shell-unstable-v1.xml
index 3181c0bb..6a5d5d35 100644
--- a/protocols/wlr-layer-shell-unstable-v1.xml
+++ b/protocols/wlr-layer-shell-unstable-v1.xml
@@ -47,12 +47,16 @@
or manipulate a buffer prior to the first layer_surface.configure call
must also be treated as errors.
+ You may pass NULL for output to allow the compositor to decide which
+ output to use. Generally this will be the one that the user most
+ recently interacted with.
+
Clients can specify a namespace that defines the purpose of the layer
surface.
</description>
<arg name="id" type="new_id" interface="zwlr_layer_surface_v1"/>
<arg name="surface" type="object" interface="wl_surface"/>
- <arg name="output" type="object" interface="wl_output"/>
+ <arg name="output" type="object" interface="wl_output" allow-null="true"/>
<arg name="layer" type="uint" enum="layer" summary="layer to add this surface to"/>
<arg name="namespace" type="string" summary="namespace for the layer surface"/>
</request>
diff --git a/swaybg/main.c b/swaybg/main.c
index 679b8c20..5b6c378c 100644
--- a/swaybg/main.c
+++ b/swaybg/main.c
@@ -113,7 +113,7 @@ static void layer_surface_closed(void *data,
state->run_display = false;
}
-struct zwlr_layer_surface_v1_listener layer_surface_listener = {
+static const struct zwlr_layer_surface_v1_listener layer_surface_listener = {
.configure = layer_surface_configure,
.closed = layer_surface_closed,
};
@@ -141,7 +141,7 @@ static void output_scale(void *data, struct wl_output *output, int32_t factor) {
}
}
-struct wl_output_listener output_listener = {
+static const struct wl_output_listener output_listener = {
.geometry = output_geometry,
.mode = output_mode,
.done = output_done,
@@ -203,7 +203,8 @@ int main(int argc, const char **argv) {
return 1;
}
- assert(state.display = wl_display_connect(NULL));
+ state.display = wl_display_connect(NULL);
+ assert(state.display);
struct wl_registry *registry = wl_display_get_registry(state.display);
wl_registry_add_listener(registry, &registry_listener, &state);
@@ -213,9 +214,11 @@ int main(int argc, const char **argv) {
// Second roundtrip to get output properties
wl_display_roundtrip(state.display);
- assert(state.surface = wl_compositor_create_surface(state.compositor));
+ state.surface = wl_compositor_create_surface(state.compositor);
+ assert(state.surface);
- assert(state.input_region = wl_compositor_create_region(state.compositor));
+ state.input_region = wl_compositor_create_region(state.compositor);
+ assert(state.input_region);
wl_surface_set_input_region(state.surface, state.input_region);
state.layer_surface = zwlr_layer_shell_v1_get_layer_surface(