wayland: Add 'MetaWaylandPopupSurface' bridge between popup and surface

Add a bridge between the MetaWaylandPopup object and the corresponding
popup surface role. This bridge replaces communicating dismissed and
unmapped popup events.

https://bugzilla.gnome.org/show_bug.cgi?id=763431
This commit is contained in:
Jonas Ådahl
2016-01-21 17:01:08 +08:00
parent d9b98bced9
commit 229a143eac
9 changed files with 164 additions and 110 deletions

View File

@ -889,8 +889,8 @@ meta_wayland_pointer_end_popup_grab (MetaWaylandPointer *pointer)
}
MetaWaylandPopup *
meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
MetaWaylandSurface *surface)
meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
MetaWaylandPopupSurface *popup_surface)
{
MetaWaylandPopupGrab *grab;
@ -899,11 +899,11 @@ meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
return NULL;
if (pointer->grab == &pointer->default_grab)
grab = meta_wayland_popup_grab_create (pointer, surface);
grab = meta_wayland_popup_grab_create (pointer, popup_surface);
else
grab = (MetaWaylandPopupGrab*)pointer->grab;
return meta_wayland_popup_create (surface, grab);
return meta_wayland_popup_create (popup_surface, grab);
}
void