wayland-surface: Add support for xdg_popup

This commit is contained in:
Jasper St. Pierre
2013-11-14 21:55:37 -05:00
parent 0cc5cf940b
commit bbe3641844
4 changed files with 56 additions and 8 deletions

View File

@ -538,14 +538,14 @@ meta_wayland_pointer_end_popup_grab (MetaWaylandPointer *pointer)
wl_list_for_each_safe (popup, tmp, &popup_grab->all_popups, link)
{
MetaWaylandSurfaceExtension *shell_surface = &popup->surface->xdg_surface;
struct wl_client *client = wl_resource_get_client (shell_surface->resource);
MetaWaylandSurfaceExtension *xdg_popup = &popup->surface->xdg_popup;
struct wl_client *client = wl_resource_get_client (xdg_popup->resource);
struct wl_display *display = wl_client_get_display (client);
uint32_t serial;
serial = wl_display_next_serial (display);
xdg_popup_send_popup_done (shell_surface->resource, serial);
xdg_popup_send_popup_done (xdg_popup->resource, serial);
wl_list_remove (&popup->surface_destroy_listener.link);
wl_list_remove (&popup->link);
g_slice_free (MetaWaylandPopup, popup);
@ -607,7 +607,7 @@ meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
popup->grab = grab;
popup->surface = surface;
popup->surface_destroy_listener.notify = on_popup_surface_destroy;
wl_resource_add_destroy_listener (surface->resource, &popup->surface_destroy_listener);
wl_resource_add_destroy_listener (surface->xdg_popup.resource, &popup->surface_destroy_listener);
wl_list_insert (&grab->all_popups, &popup->link);