[mutter] wayland: Check surface outputs after mapped state changes



commit 5eb5f724347ae8d141ef38b36565169c60c53ab1
Author: Carlos Garnacho <carlosg gnome org>
Date:   Thu Dec 1 16:18:48 2016 +0100

    wayland: Check surface outputs after mapped state changes
    
    So they consistently receive wl_surface.leave after the surface
    is not visible anymore.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=775478

 src/wayland/meta-wayland-surface.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
index b780c0f..1b4e8bb 100644
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -1286,6 +1286,14 @@ surface_actor_painting (MetaSurfaceActorWayland *surface_actor,
   meta_wayland_surface_update_outputs (surface);
 }
 
+static void
+surface_actor_mapped_notify (MetaSurfaceActorWayland *surface_actor,
+                             GParamSpec              *pspec,
+                             MetaWaylandSurface      *surface)
+{
+  meta_wayland_surface_update_outputs (surface);
+}
+
 MetaWaylandSurface *
 meta_wayland_surface_create (MetaWaylandCompositor *compositor,
                              struct wl_client      *client,
@@ -1309,6 +1317,10 @@ meta_wayland_surface_create (MetaWaylandCompositor *compositor,
                            G_CALLBACK (surface_actor_painting),
                            surface,
                            0);
+  g_signal_connect_object (surface->surface_actor,
+                           "notify::mapped",
+                           G_CALLBACK (surface_actor_mapped_notify),
+                           surface, 0);
 
   sync_drag_dest_funcs (surface);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]