layer shell working
This commit is contained in:
parent
29a8910556
commit
5f412e825c
1 changed files with 13 additions and 6 deletions
19
wayland.c
19
wayland.c
|
|
@ -59,6 +59,7 @@ static void zwlr_layer_surface_v1_configure(void *data, struct zwlr_layer_surfac
|
||||||
state->width = width;
|
state->width = width;
|
||||||
state->height = height;
|
state->height = height;
|
||||||
wl_egl_window_resize(state->egl_window, width, height, 0, 0);
|
wl_egl_window_resize(state->egl_window, width, height, 0, 0);
|
||||||
|
zwlr_layer_surface_v1_ack_configure(zwlr_layer_surface_v1, serial);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct zwlr_layer_surface_v1_listener zwlr_layer_surface_v1_listener = {
|
static const struct zwlr_layer_surface_v1_listener zwlr_layer_surface_v1_listener = {
|
||||||
|
|
@ -98,8 +99,6 @@ static void registry_handle_global(
|
||||||
}
|
}
|
||||||
if ((strcmp(interface, zwlr_layer_shell_v1_interface.name) == 0) && (state->output_type == OUTPUT_LAYER)) {
|
if ((strcmp(interface, zwlr_layer_shell_v1_interface.name) == 0) && (state->output_type == OUTPUT_LAYER)) {
|
||||||
state->zwlr_layer_shell_v1 = wl_registry_bind(registry, name, &zwlr_layer_shell_v1_interface, 4);
|
state->zwlr_layer_shell_v1 = wl_registry_bind(registry, name, &zwlr_layer_shell_v1_interface, 4);
|
||||||
int layer = ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND;
|
|
||||||
state->zwlr_layer_surface_v1 = zwlr_layer_shell_v1_get_layer_surface(state->zwlr_layer_shell_v1, state->wl_surface, NULL, layer, "wallpaper");
|
|
||||||
}
|
}
|
||||||
if (strcmp(interface, wl_output_interface.name) == 0) {
|
if (strcmp(interface, wl_output_interface.name) == 0) {
|
||||||
state->wl_output = wl_registry_bind(
|
state->wl_output = wl_registry_bind(
|
||||||
|
|
@ -215,13 +214,21 @@ void wayland_init(struct client_state *state, int output_type) {
|
||||||
state->output_type = output_type;
|
state->output_type = output_type;
|
||||||
state->wl_display = wl_display_connect(NULL);
|
state->wl_display = wl_display_connect(NULL);
|
||||||
state->wl_registry = wl_display_get_registry(state->wl_display);
|
state->wl_registry = wl_display_get_registry(state->wl_display);
|
||||||
|
state->wl_output = NULL;
|
||||||
wl_registry_add_listener(state->wl_registry, &wl_registry_listener, state);
|
wl_registry_add_listener(state->wl_registry, &wl_registry_listener, state);
|
||||||
wl_display_roundtrip(state->wl_display);
|
wl_display_roundtrip(state->wl_display);
|
||||||
|
|
||||||
// wlr_layer_shell
|
if (output_type == OUTPUT_LAYER) {
|
||||||
//int layer = ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND;
|
// wlr_layer_shell
|
||||||
//struct zwlr_layer_surface_v1 *zwlr_layer_surface = zwlr_layer_shell_v1_get_layer_surface(state->zwlr_layer_shell_v1, state->wl_surface, state->wl_output, layer, "wallpaper");
|
int layer = ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND;
|
||||||
// toplevel
|
state->zwlr_layer_surface_v1 = zwlr_layer_shell_v1_get_layer_surface(state->zwlr_layer_shell_v1, state->wl_surface, state->wl_output, layer, "wallpaper");
|
||||||
|
zwlr_layer_surface_v1_set_anchor(state->zwlr_layer_surface_v1,
|
||||||
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM | ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP
|
||||||
|
| ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT | ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT);
|
||||||
|
zwlr_layer_surface_v1_set_size(state->zwlr_layer_surface_v1, 0, 0);
|
||||||
|
zwlr_layer_surface_v1_add_listener(state->zwlr_layer_surface_v1, &zwlr_layer_surface_v1_listener, state);
|
||||||
|
}
|
||||||
|
|
||||||
wl_surface_commit(state->wl_surface);
|
wl_surface_commit(state->wl_surface);
|
||||||
|
|
||||||
egl_init(state);
|
egl_init(state);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue