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 | |||
@@ -280,12 +280,10 @@ toggle_fullscreen(struct window *window, int fullscreen) | |||
280 | window->configured = 0; | 280 | window->configured = 0; |
281 | 281 | ||
282 | if (fullscreen) { | 282 | if (fullscreen) { |
283 | window->opaque = 1; | ||
284 | wl_shell_surface_set_fullscreen(window->shell_surface, | 283 | wl_shell_surface_set_fullscreen(window->shell_surface, |
285 | WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, | 284 | WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, |
286 | 0, NULL); | 285 | 0, NULL); |
287 | } else { | 286 | } else { |
288 | window->opaque = 0; | ||
289 | wl_shell_surface_set_toplevel(window->shell_surface); | 287 | wl_shell_surface_set_toplevel(window->shell_surface); |
290 | handle_configure(window, window->shell_surface, 0, | 288 | handle_configure(window, window->shell_surface, 0, |
291 | window->window_size.width, | 289 | window->window_size.width, |
@@ -403,7 +401,7 @@ redraw(void *data, struct wl_callback *callback, uint32_t time) | |||
403 | 401 | ||
404 | eglSwapBuffers(window->display->egl.dpy, window->egl_surface); | 402 | eglSwapBuffers(window->display->egl.dpy, window->egl_surface); |
405 | 403 | ||
406 | if (window->opaque) { | 404 | if (window->opaque || window->fullscreen) { |
407 | region = wl_compositor_create_region(window->display->compositor); | 405 | region = wl_compositor_create_region(window->display->compositor); |
408 | wl_region_add(region, 0, 0, | 406 | wl_region_add(region, 0, 0, |
409 | window->window_size.width, | 407 | window->window_size.width, |
@@ -594,7 +592,7 @@ main(int argc, char **argv) | |||
594 | struct sigaction sigint; | 592 | struct sigaction sigint; |
595 | struct display display = { 0 }; | 593 | struct display display = { 0 }; |
596 | struct window window = { 0 }; | 594 | struct window window = { 0 }; |
597 | int i, opaque = 0; | 595 | int i; |
598 | 596 | ||
599 | window.display = &display; | 597 | window.display = &display; |
600 | display.window = &window; | 598 | display.window = &window; |
@@ -605,7 +603,7 @@ main(int argc, char **argv) | |||
605 | if (strcmp("-f", argv[i]) == 0) | 603 | if (strcmp("-f", argv[i]) == 0) |
606 | window.fullscreen = 1; | 604 | window.fullscreen = 1; |
607 | else if (strcmp("-o", argv[i]) == 0) | 605 | else if (strcmp("-o", argv[i]) == 0) |
608 | opaque = 1; | 606 | window.opaque = 1; |
609 | else if (strcmp("-h", argv[i]) == 0) | 607 | else if (strcmp("-h", argv[i]) == 0) |
610 | usage(EXIT_SUCCESS); | 608 | usage(EXIT_SUCCESS); |
611 | else | 609 | else |
@@ -621,10 +619,7 @@ main(int argc, char **argv) | |||
621 | wl_display_get_fd(display.display, event_mask_update, &display); | 619 | wl_display_get_fd(display.display, event_mask_update, &display); |
622 | wl_display_iterate(display.display, WL_DISPLAY_READABLE); | 620 | wl_display_iterate(display.display, WL_DISPLAY_READABLE); |
623 | 621 | ||
624 | if (window.fullscreen) | 622 | init_egl(&display, window.opaque); |
625 | window.opaque = 1; | ||
626 | |||
627 | init_egl(&display, opaque); | ||
628 | create_surface(&window); | 623 | create_surface(&window); |
629 | init_gl(&window); | 624 | init_gl(&window); |
630 | 625 | ||