[mutter/wayland] wayland-surface: Restructure code flow in wl_surface_attach a bit more...
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wayland] wayland-surface: Restructure code flow in wl_surface_attach a bit more...
- Date: Mon, 25 Nov 2013 23:33:34 +0000 (UTC)
commit 7841042a85361923ecfe0100456fca33cace6559
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Nov 25 17:35:44 2013 -0500
wayland-surface: Restructure code flow in wl_surface_attach a bit more...
src/compositor/meta-surface-actor.c | 6 +++++-
src/wayland/meta-wayland-surface.c | 35 +++++++++++++++--------------------
2 files changed, 20 insertions(+), 21 deletions(-)
---
diff --git a/src/compositor/meta-surface-actor.c b/src/compositor/meta-surface-actor.c
index 6697ff1..ff71b46 100644
--- a/src/compositor/meta-surface-actor.c
+++ b/src/compositor/meta-surface-actor.c
@@ -156,7 +156,11 @@ meta_surface_actor_attach_wayland_buffer (MetaSurfaceActor *self,
{
MetaSurfaceActorPrivate *priv = self->priv;
priv->buffer = buffer;
- meta_shaped_texture_set_texture (self->priv->texture, buffer->texture);
+
+ if (buffer)
+ meta_shaped_texture_set_texture (self->priv->texture, buffer->texture);
+ else
+ meta_shaped_texture_set_texture (self->priv->texture, NULL);
}
void
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
index 7ee6f21..23b816e 100644
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -286,33 +286,28 @@ toplevel_surface_commit (MetaWaylandSurface *surface)
{
ensure_buffer_texture (buffer);
meta_wayland_buffer_reference (&surface->buffer_ref, buffer);
+ meta_surface_actor_attach_wayland_buffer (surface_actor, buffer);
+ surface_process_damage (surface, surface->pending.damage);
meta_window_set_surface_mapped (window, buffer != NULL);
- if (buffer != NULL)
+ /* We resize X based surfaces according to X events */
+ if (buffer != NULL && window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
{
- meta_surface_actor_attach_wayland_buffer (surface_actor, buffer);
-
- /* We resize X based surfaces according to X events */
- if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
- {
- int new_width;
- int new_height;
-
- new_width = surface->buffer_ref.buffer->width;
- new_height = surface->buffer_ref.buffer->height;
- if (new_width != window->rect.width ||
- new_height != window->rect.height ||
- surface->pending.dx != 0 ||
- surface->pending.dy != 0)
- meta_window_move_resize_wayland (window, new_width, new_height,
- surface->pending.dx, surface->pending.dy);
- }
+ int new_width;
+ int new_height;
+
+ new_width = surface->buffer_ref.buffer->width;
+ new_height = surface->buffer_ref.buffer->height;
+ if (new_width != window->rect.width ||
+ new_height != window->rect.height ||
+ surface->pending.dx != 0 ||
+ surface->pending.dy != 0)
+ meta_window_move_resize_wayland (window, new_width, new_height,
+ surface->pending.dx, surface->pending.dy);
}
}
- surface_process_damage (surface, surface->pending.damage);
-
if (surface->pending.opaque_region)
meta_surface_actor_set_opaque_region (surface_actor, surface->pending.opaque_region);
if (surface->pending.input_region)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]