summaryrefslogtreecommitdiff
path: root/src/wayland/meta-wayland-actor-surface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wayland/meta-wayland-actor-surface.c')
-rw-r--r--src/wayland/meta-wayland-actor-surface.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/wayland/meta-wayland-actor-surface.c b/src/wayland/meta-wayland-actor-surface.c
index 2471de0a9..1b7b74953 100644
--- a/src/wayland/meta-wayland-actor-surface.c
+++ b/src/wayland/meta-wayland-actor-surface.c
@@ -253,10 +253,20 @@ meta_wayland_actor_surface_commit (MetaWaylandSurfaceRole *surface_role,
{
MetaWaylandActorSurface *actor_surface =
META_WAYLAND_ACTOR_SURFACE (surface_role);
+ MetaWaylandActorSurfacePrivate *priv =
+ meta_wayland_actor_surface_get_instance_private (actor_surface);
MetaWaylandSurface *surface =
meta_wayland_surface_role_get_surface (surface_role);
MetaWaylandSurface *toplevel_surface;
+ if (!priv->actor)
+ return;
+
+ if (!wl_list_empty (&pending->frame_callback_list) &&
+ cairo_region_is_empty (pending->surface_damage) &&
+ cairo_region_is_empty (pending->buffer_damage))
+ clutter_actor_queue_redraw (CLUTTER_ACTOR (priv->actor));
+
meta_wayland_actor_surface_queue_frame_callbacks (actor_surface, pending);
toplevel_surface = meta_wayland_surface_get_toplevel (surface);