diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c index cbad045aa..832c700b2 100644 --- a/src/wayland/meta-wayland-surface.c +++ b/src/wayland/meta-wayland-surface.c @@ -887,13 +887,15 @@ get_xdg_popup (struct wl_client *client, } surface->window = meta_window_new_for_wayland (meta_get_display (), surface); - surface->window->type = META_WINDOW_DROPDOWN_MENU; - surface->window->showing_for_first_time = FALSE; surface->window->rect.x = parent_rect.x + x; surface->window->rect.y = parent_rect.y + y; + surface->window->showing_for_first_time = FALSE; surface->window->placed = TRUE; meta_window_set_transient_for (surface->window, parent_surf->window); + surface->window->type = META_WINDOW_DROPDOWN_MENU; + meta_window_type_changed (surface->window); + meta_wayland_pointer_start_popup_grab (&seat->pointer, surface); }