layer shell working
This commit is contained in:
parent
29a8910556
commit
5f412e825c
1 changed files with 13 additions and 6 deletions
17
wayland.c
17
wayland.c
|
|
@ -59,6 +59,7 @@ static void zwlr_layer_surface_v1_configure(void *data, struct zwlr_layer_surfac
|
|||
state->width = width;
|
||||
state->height = height;
|
||||
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 = {
|
||||
|
|
@ -98,8 +99,6 @@ static void registry_handle_global(
|
|||
}
|
||||
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);
|
||||
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) {
|
||||
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->wl_display = wl_display_connect(NULL);
|
||||
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_display_roundtrip(state->wl_display);
|
||||
|
||||
if (output_type == OUTPUT_LAYER) {
|
||||
// wlr_layer_shell
|
||||
//int layer = ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND;
|
||||
//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");
|
||||
// toplevel
|
||||
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, 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);
|
||||
|
||||
egl_init(state);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue