diff options
Diffstat (limited to 'src/video/wayland/SDL_waylandwindow.c')
-rw-r--r-- | src/video/wayland/SDL_waylandwindow.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c index a9e71f08..f2f25979 100644 --- a/src/video/wayland/SDL_waylandwindow.c +++ b/src/video/wayland/SDL_waylandwindow.c @@ -30,15 +30,17 @@ void Wayland_ShowWindow(_THIS, SDL_Window * window) { SDL_WaylandWindow *wind = (SDL_WaylandWindow*) window->driverdata; printf("sow window: %d,%d\n", window->w, window->h); if (window->flags & SDL_WINDOW_FULLSCREEN) - wl_surface_map_fullscreen(wind->surface); + wl_shell_surface_set_fullscreen(wind->shell_surface, + WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, + 0, NULL); else - wl_surface_map_toplevel(wind->surface); + wl_shell_surface_set_toplevel(wind->shell_surface); /* wl_surface_map(wind->surface, window->x, window->y, window->w, window->h); */ @@ -46,14 +48,12 @@ void Wayland_ShowWindow(_THIS, SDL_Window * window) } int Wayland_CreateWindow(_THIS, SDL_Window * window) { SDL_WaylandWindow *data; - struct wl_visual *visual; - int i; SDL_WaylandData *c; data = malloc(sizeof *data); if (data == NULL) return 0; @@ -75,19 +75,17 @@ int Wayland_CreateWindow(_THIS, SDL_Window * window) data->waylandData = c; data->sdlwindow = window; data->surface = wl_compositor_create_surface(c->compositor); wl_surface_set_user_data(data->surface, data); + data->shell_surface = wl_shell_get_shell_surface(c->shell, + data->surface); - if (_this->gl_config.alpha_size == 0) - visual = wl_display_get_rgb_visual(c->display); - else - visual = wl_display_get_premultiplied_argb_visual(c->display); data->egl_window = wl_egl_window_create(data->surface, - window->w, window->h, visual); + window->w, window->h); data->esurf = eglCreateWindowSurface(c->edpy, c->econf, data->egl_window, NULL); if (data->esurf == EGL_NO_SURFACE) { SDL_SetError("failed to create a window surface\n"); @@ -104,13 +102,12 @@ int Wayland_CreateWindow(_THIS, SDL_Window * window) void Wayland_DestroyWindow(_THIS, SDL_Window * window) { SDL_WaylandData *data = (SDL_WaylandData *) _this->driverdata; SDL_WaylandWindow *wind = (SDL_WaylandWindow *) window->driverdata; window->driverdata = NULL; - int i; if (data) { eglDestroySurface(data->edpy, wind->esurf); wl_egl_window_destroy(wind->egl_window); wl_surface_destroy(wind->surface); SDL_free(wind); |