diff --git a/hw/xwayland/xwayland-window.c b/hw/xwayland/xwayland-window.c index afb421989..e07547e0f 100644 --- a/hw/xwayland/xwayland-window.c +++ b/hw/xwayland/xwayland-window.c @@ -1878,6 +1878,7 @@ xwl_reparent_window(WindowPtr window, WindowPtr prior_parent) ScreenPtr screen = window->drawable.pScreen; struct xwl_screen *xwl_screen = xwl_screen_get(screen); WindowPtr parent = window->parent; + ClientPtr current_client; Bool *is_wm_window; if (xwl_screen->ReparentWindow) { @@ -1887,8 +1888,10 @@ xwl_reparent_window(WindowPtr window, WindowPtr prior_parent) screen->ReparentWindow = xwl_reparent_window; } + current_client = GetCurrentClient(); if (!parent->parent || - GetCurrentClient()->index != xwl_screen->wm_client_id) + !current_client || + current_client->index != xwl_screen->wm_client_id) return; /* If the WM client reparents a window, mark the new parent as a WM window */