|
|
@ -59,6 +59,12 @@ static const struct wl_shell_surface_listener surface_listener = {
|
|
|
|
.configure = shell_surface_configure
|
|
|
|
.configure = shell_surface_configure
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void window_make_shell(struct window *window) {
|
|
|
|
|
|
|
|
window->shell_surface = wl_shell_get_shell_surface(window->registry->shell, window->surface);
|
|
|
|
|
|
|
|
wl_shell_surface_add_listener(window->shell_surface, &surface_listener, window);
|
|
|
|
|
|
|
|
wl_shell_surface_set_toplevel(window->shell_surface);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
struct window *window_setup(struct registry *registry, uint32_t width, uint32_t height, bool shell_surface) {
|
|
|
|
struct window *window_setup(struct registry *registry, uint32_t width, uint32_t height, bool shell_surface) {
|
|
|
|
struct window *window = malloc(sizeof(struct window));
|
|
|
|
struct window *window = malloc(sizeof(struct window));
|
|
|
|
memset(window, 0, sizeof(struct window));
|
|
|
|
memset(window, 0, sizeof(struct window));
|
|
|
@ -69,9 +75,7 @@ struct window *window_setup(struct registry *registry, uint32_t width, uint32_t
|
|
|
|
|
|
|
|
|
|
|
|
window->surface = wl_compositor_create_surface(registry->compositor);
|
|
|
|
window->surface = wl_compositor_create_surface(registry->compositor);
|
|
|
|
if (shell_surface) {
|
|
|
|
if (shell_surface) {
|
|
|
|
window->shell_surface = wl_shell_get_shell_surface(registry->shell, window->surface);
|
|
|
|
window_make_shell(window);
|
|
|
|
wl_shell_surface_add_listener(window->shell_surface, &surface_listener, window);
|
|
|
|
|
|
|
|
wl_shell_surface_set_toplevel(window->shell_surface);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (registry->pointer) {
|
|
|
|
if (registry->pointer) {
|
|
|
|
wl_pointer_add_listener(registry->pointer, &pointer_listener, window);
|
|
|
|
wl_pointer_add_listener(registry->pointer, &pointer_listener, window);
|
|
|
|