[mutter] wayland: Add frame callbacks to the actor based on the role



commit 4dc5882777ed1f6c2957d3860a6f5f23cb48e136
Author: Adel Gadllah <adel gadllah gmail com>
Date:   Sun Aug 9 12:54:00 2015 +0200

    wayland: Add frame callbacks to the actor based on the role
    
    Checking for the presense of the actor is wrong because we always
    create one.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=739163

 src/wayland/meta-wayland-surface.c |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)
---
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
index 7481d87..863a3ba 100644
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -541,11 +541,21 @@ apply_pending_state (MetaWaylandSurface      *surface,
     }
 
   /* wl_surface.frame */
-  if (surface->surface_actor)
-    meta_surface_actor_wayland_add_frame_callbacks (META_SURFACE_ACTOR_WAYLAND (surface->surface_actor),
-                                                    &pending->frame_callback_list);
-  else
-    wl_list_insert_list (&compositor->frame_callbacks, &pending->frame_callback_list);
+  switch (surface->role)
+    {
+    case META_WAYLAND_SURFACE_ROLE_NONE:
+    case META_WAYLAND_SURFACE_ROLE_CURSOR:
+    case META_WAYLAND_SURFACE_ROLE_DND:
+      wl_list_insert_list (&compositor->frame_callbacks, &pending->frame_callback_list);
+      break;
+    case META_WAYLAND_SURFACE_ROLE_XDG_SURFACE:
+    case META_WAYLAND_SURFACE_ROLE_XDG_POPUP:
+    case META_WAYLAND_SURFACE_ROLE_WL_SHELL_SURFACE:
+    case META_WAYLAND_SURFACE_ROLE_SUBSURFACE:
+      meta_surface_actor_wayland_add_frame_callbacks (META_SURFACE_ACTOR_WAYLAND (surface->surface_actor),
+                                                      &pending->frame_callback_list);
+    break;
+    }
   wl_list_init (&pending->frame_callback_list);
 
   switch (surface->role)


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