diff options
Diffstat (limited to 'clients/simple-egl.c')
-rw-r--r-- | clients/simple-egl.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/clients/simple-egl.c b/clients/simple-egl.c index 808c2eea..a67ce2f8 100644 --- a/clients/simple-egl.c +++ b/clients/simple-egl.c @@ -277,18 +277,16 @@ toggle_fullscreen(struct window *window, int fullscreen) struct wl_callback *callback; window->fullscreen = fullscreen; window->configured = 0; if (fullscreen) { - window->opaque = 1; wl_shell_surface_set_fullscreen(window->shell_surface, WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, 0, NULL); } else { - window->opaque = 0; wl_shell_surface_set_toplevel(window->shell_surface); handle_configure(window, window->shell_surface, 0, window->window_size.width, window->window_size.height); } @@ -400,13 +398,13 @@ redraw(void *data, struct wl_callback *callback, uint32_t time) glDisableVertexAttribArray(window->gl.pos); glDisableVertexAttribArray(window->gl.col); eglSwapBuffers(window->display->egl.dpy, window->egl_surface); - if (window->opaque) { + if (window->opaque || window->fullscreen) { region = wl_compositor_create_region(window->display->compositor); wl_region_add(region, 0, 0, window->window_size.width, window->window_size.height); wl_surface_set_opaque_region(window->surface, region); wl_region_destroy(region); @@ -591,24 +589,24 @@ usage(int error_code) int main(int argc, char **argv) { struct sigaction sigint; struct display display = { 0 }; struct window window = { 0 }; - int i, opaque = 0; + int i; window.display = &display; display.window = &window; window.window_size.width = 250; window.window_size.height = 250; for (i = 1; i < argc; i++) { if (strcmp("-f", argv[i]) == 0) window.fullscreen = 1; else if (strcmp("-o", argv[i]) == 0) - opaque = 1; + window.opaque = 1; else if (strcmp("-h", argv[i]) == 0) usage(EXIT_SUCCESS); else usage(EXIT_FAILURE); } @@ -618,16 +616,13 @@ main(int argc, char **argv) wl_display_add_global_listener(display.display, display_handle_global, &display); wl_display_get_fd(display.display, event_mask_update, &display); wl_display_iterate(display.display, WL_DISPLAY_READABLE); - if (window.fullscreen) - window.opaque = 1; - - init_egl(&display, opaque); + init_egl(&display, window.opaque); create_surface(&window); init_gl(&window); sigint.sa_handler = signal_int; sigemptyset(&sigint.sa_mask); sigint.sa_flags = SA_RESETHAND; |