summaryrefslogtreecommitdiff
path: root/src/video/wayland/SDL_waylandwindow.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/video/wayland/SDL_waylandwindow.c')
-rw-r--r--src/video/wayland/SDL_waylandwindow.c17
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);