Blob Blame History Raw
From 0b666dbeb298df3f0016abbf0f880d65a7d78ae3 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Sat, 28 Apr 2018 16:14:34 +0000
Subject: [PATCH 26/75] compositor: Add get_paint_volume() implementation to
 MetaSurfaceActor

The special ::pick implementation there makes clutter fall into paths
that do require a get_paint_volume() implementation, or an infinite
area will be used.

Providing a paint volume here is easier on the invalidation mechanism.


(cherry picked from commit 94f400988220eae76a1fb30390a62104da8f7b8f)
---
 src/compositor/meta-surface-actor.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/compositor/meta-surface-actor.c b/src/compositor/meta-surface-actor.c
index bf8c76f39..9acfab1f0 100644
--- a/src/compositor/meta-surface-actor.c
+++ b/src/compositor/meta-surface-actor.c
@@ -101,6 +101,13 @@ meta_surface_actor_pick (ClutterActor       *actor,
     clutter_actor_paint (child);
 }
 
+static gboolean
+meta_surface_actor_get_paint_volume (ClutterActor       *actor,
+                                     ClutterPaintVolume *volume)
+{
+  return clutter_paint_volume_set_from_allocation (volume, actor);
+}
+
 static void
 meta_surface_actor_dispose (GObject *object)
 {
@@ -120,6 +127,7 @@ meta_surface_actor_class_init (MetaSurfaceActorClass *klass)
 
   object_class->dispose = meta_surface_actor_dispose;
   actor_class->pick = meta_surface_actor_pick;
+  actor_class->get_paint_volume = meta_surface_actor_get_paint_volume;
 
   signals[REPAINT_SCHEDULED] = g_signal_new ("repaint-scheduled",
                                              G_TYPE_FROM_CLASS (object_class),
-- 
2.21.0