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

@@ -149,9 +149,6 @@ meta_wayland_surface_role_shell_surface_ping (MetaWaylandSurfaceRoleShellSurface
static void
meta_wayland_surface_role_shell_surface_close (MetaWaylandSurfaceRoleShellSurface *shell_surface_role);
static void
meta_wayland_surface_role_shell_surface_popup_done (MetaWaylandSurfaceRoleShellSurface *shell_surface_role);
static void
meta_wayland_surface_role_shell_surface_managed (MetaWaylandSurfaceRoleShellSurface *shell_surface_role,
MetaWindow *window);
@@ -1690,15 +1687,6 @@ meta_wayland_surface_delete (MetaWaylandSurface *surface)
meta_wayland_surface_role_shell_surface_close (shell_surface_role);
}
void
meta_wayland_surface_popup_done (MetaWaylandSurface *surface)
{
MetaWaylandSurfaceRoleShellSurface *shell_surface_role =
META_WAYLAND_SURFACE_ROLE_SHELL_SURFACE (surface->role);
meta_wayland_surface_role_shell_surface_popup_done (shell_surface_role);
}
void
meta_wayland_surface_window_managed (MetaWaylandSurface *surface,
MetaWindow *window)
@@ -1927,15 +1915,6 @@ meta_wayland_surface_role_shell_surface_close (MetaWaylandSurfaceRoleShellSurfac
shell_surface_role_class->close (shell_surface_role);
}
static void
meta_wayland_surface_role_shell_surface_popup_done (MetaWaylandSurfaceRoleShellSurface *shell_surface_role)
{
MetaWaylandSurfaceRoleShellSurfaceClass *shell_surface_role_class =
META_WAYLAND_SURFACE_ROLE_SHELL_SURFACE_GET_CLASS (shell_surface_role);
shell_surface_role_class->popup_done (shell_surface_role);
}
static void
meta_wayland_surface_role_shell_surface_managed (MetaWaylandSurfaceRoleShellSurface *shell_surface_role,
MetaWindow *window)