From 5403f5274da12137129cb485bf9624818c18a9a9 Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira Date: Fri, 14 Dec 2012 13:37:23 -0200 Subject: [PATCH] window: Allow clients to choose the fullscreen method --- clients/window.c | 11 ++++++++++- clients/window.h | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/clients/window.c b/clients/window.c index 29f6c872..0bc95268 100644 --- a/clients/window.c +++ b/clients/window.c @@ -219,6 +219,7 @@ struct window { cairo_surface_t *cairo_surface; int resizing; + int fullscreen_method; window_key_handler_t key_handler; window_keyboard_focus_handler_t keyboard_focus_handler; @@ -3334,7 +3335,7 @@ window_set_fullscreen(struct window *window, int fullscreen) window->type = TYPE_FULLSCREEN; window->saved_allocation = window->allocation; wl_shell_surface_set_fullscreen(window->shell_surface, - WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, + window->fullscreen_method, 0, NULL); } else { window->type = TYPE_TOPLEVEL; @@ -3345,6 +3346,13 @@ window_set_fullscreen(struct window *window, int fullscreen) } } +void +window_set_fullscreen_method(struct window *window, + enum wl_shell_surface_fullscreen_method method) +{ + window->fullscreen_method = method; +} + int window_is_maximized(struct window *window) { @@ -3558,6 +3566,7 @@ window_create_internal(struct display *display, window->type = type; window->input_region = NULL; window->opaque_region = NULL; + window->fullscreen_method = WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT; if (display->dpy) #ifdef HAVE_CAIRO_EGL diff --git a/clients/window.h b/clients/window.h index 29bba307..4cde0f67 100644 --- a/clients/window.h +++ b/clients/window.h @@ -301,6 +301,9 @@ window_is_fullscreen(struct window *window); void window_set_fullscreen(struct window *window, int fullscreen); +void +window_set_fullscreen_method(struct window *window, + enum wl_shell_surface_fullscreen_method method); int window_is_maximized(struct window *window);