[mutter/wayland] surface-actor: Add setters for set_input_region / set_opaque_region



commit 025ab35af7c22f97d29539f3d1c6793c88fd9061
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Thu Nov 21 17:45:05 2013 -0500

    surface-actor: Add setters for set_input_region / set_opaque_region
    
    Subsurfaces won't have a MetaWindow or MetaWindowActor to fetch these from,
    so they need to be tied directly to the MetaSurfaceActor.

 src/compositor/meta-surface-actor.c |   14 ++++++++++++++
 src/compositor/meta-surface-actor.h |    4 ++++
 src/compositor/meta-window-actor.c  |   13 ++-----------
 3 files changed, 20 insertions(+), 11 deletions(-)
---
diff --git a/src/compositor/meta-surface-actor.c b/src/compositor/meta-surface-actor.c
index af59960..b046d23 100644
--- a/src/compositor/meta-surface-actor.c
+++ b/src/compositor/meta-surface-actor.c
@@ -164,3 +164,17 @@ meta_surface_actor_set_texture (MetaSurfaceActor *self,
 {
   meta_shaped_texture_set_texture (self->priv->texture, texture);
 }
+
+void
+meta_surface_actor_set_input_region (MetaSurfaceActor *self,
+                                     cairo_region_t   *region)
+{
+  meta_shaped_texture_set_input_shape_region (self->priv->texture, region);
+}
+
+void
+meta_surface_actor_set_opaque_region (MetaSurfaceActor *self,
+                                      cairo_region_t   *region)
+{
+  meta_shaped_texture_set_opaque_region (self->priv->texture, region);
+}
diff --git a/src/compositor/meta-surface-actor.h b/src/compositor/meta-surface-actor.h
index 287b230..45284f6 100644
--- a/src/compositor/meta-surface-actor.h
+++ b/src/compositor/meta-surface-actor.h
@@ -57,6 +57,10 @@ void meta_surface_actor_set_texture (MetaSurfaceActor *self,
                                      CoglTexture      *texture);
 void meta_surface_actor_attach_wayland_buffer (MetaSurfaceActor  *self,
                                                MetaWaylandBuffer *buffer);
+void meta_surface_actor_set_input_region (MetaSurfaceActor *self,
+                                          cairo_region_t   *region);
+void meta_surface_actor_set_opaque_region (MetaSurfaceActor *self,
+                                           cairo_region_t   *region);
 
 G_END_DECLS
 
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 44ec253..7a3b786 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -2357,12 +2357,8 @@ meta_window_actor_update_input_region (MetaWindowActor       *self,
                                        cairo_rectangle_int_t *client_area)
 {
   MetaWindowActorPrivate *priv = self->priv;
-  MetaShapedTexture *stex = meta_surface_actor_get_texture (priv->surface);
   cairo_region_t *region = NULL;
 
-  if (!stex)
-    return;
-
   if (priv->window->frame != NULL && priv->window->input_region != NULL)
     {
       region = meta_frame_get_frame_bounds (priv->window->frame);
@@ -2387,7 +2383,7 @@ meta_window_actor_update_input_region (MetaWindowActor       *self,
       region = cairo_region_create_rectangle (client_area);
     }
 
-  meta_shaped_texture_set_input_shape_region (stex, region);
+  meta_surface_actor_set_input_region (priv->surface, region);
   cairo_region_destroy (region);
 }
 
@@ -2395,13 +2391,8 @@ static void
 meta_window_actor_update_opaque_region (MetaWindowActor *self)
 {
   MetaWindowActorPrivate *priv = self->priv;
-  MetaShapedTexture *stex;
   cairo_region_t *opaque_region;
 
-  stex = meta_surface_actor_get_texture (priv->surface);
-  if (!stex)
-    return;
-
   if (priv->argb32 && priv->window->opaque_region != NULL)
     {
       MetaFrameBorders borders;
@@ -2427,7 +2418,7 @@ meta_window_actor_update_opaque_region (MetaWindowActor *self)
   else
     opaque_region = cairo_region_reference (priv->shape_region);
 
-  meta_shaped_texture_set_opaque_region (stex, opaque_region);
+  meta_surface_actor_set_opaque_region (priv->surface, opaque_region);
   cairo_region_destroy (opaque_region);
 }
 


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