[mutter/wayland] surface-actor: Add setters for set_input_region / set_opaque_region
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wayland] surface-actor: Add setters for set_input_region / set_opaque_region
- Date: Mon, 25 Nov 2013 22:26:40 +0000 (UTC)
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]