diff options
-rw-r--r-- | hw/xwayland/xwayland-present.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/hw/xwayland/xwayland-present.c b/hw/xwayland/xwayland-present.c index 07fdc7c18..66bfaaed0 100644 --- a/hw/xwayland/xwayland-present.c +++ b/hw/xwayland/xwayland-present.c @@ -77,13 +77,14 @@ xwl_present_cleanup(struct xwl_window *xwl_window, WindowPtr window) { struct xwl_present_event *event, *tmp; - if (xwl_window->present_window == window || xwl_window->window == window) { - if (xwl_window->present_frame_callback) { - wl_callback_destroy(xwl_window->present_frame_callback); - xwl_window->present_frame_callback = NULL; - } - xwl_window->present_window = NULL; + if (xwl_window->present_window != window && xwl_window->window != window) + return; + + if (xwl_window->present_frame_callback) { + wl_callback_destroy(xwl_window->present_frame_callback); + xwl_window->present_frame_callback = NULL; } + xwl_window->present_window = NULL; /* Clear remaining events */ xorg_list_for_each_entry_safe(event, tmp, &xwl_window->present_event_list, list) { @@ -98,8 +99,7 @@ xwl_present_cleanup(struct xwl_window *xwl_window, WindowPtr window) } /* Clear timer */ - if (!xwl_present_has_events(xwl_window)) - xwl_present_free_timer(xwl_window); + xwl_present_free_timer(xwl_window); } static void |