[mutter/wip/tablet-protocol-v2: 83/149] wayland: Make additional data in MetaWaylandSurfaceRoleCursor private
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/tablet-protocol-v2: 83/149] wayland: Make additional data in MetaWaylandSurfaceRoleCursor private
- Date: Wed, 20 Jul 2016 17:40:28 +0000 (UTC)
commit 7ecbca62911552c3d2394535fd2a0eb279c8c9ac
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu May 12 15:53:07 2016 +0200
wayland: Make additional data in MetaWaylandSurfaceRoleCursor private
This will help subclassing it.
src/wayland/meta-wayland-surface-role-cursor.c | 111 +++++++++++++++---------
1 files changed, 70 insertions(+), 41 deletions(-)
---
diff --git a/src/wayland/meta-wayland-surface-role-cursor.c b/src/wayland/meta-wayland-surface-role-cursor.c
index 51bd2db..2dbbc55 100644
--- a/src/wayland/meta-wayland-surface-role-cursor.c
+++ b/src/wayland/meta-wayland-surface-role-cursor.c
@@ -28,10 +28,10 @@
#include "meta-xwayland.h"
#include "screen-private.h"
-struct _MetaWaylandSurfaceRoleCursor
-{
- MetaWaylandSurfaceRole parent;
+typedef struct _MetaWaylandSurfaceRoleCursorPrivate MetaWaylandSurfaceRoleCursorPrivate;
+struct _MetaWaylandSurfaceRoleCursorPrivate
+{
int hot_x;
int hot_y;
MetaCursorSprite *cursor_sprite;
@@ -39,41 +39,42 @@ struct _MetaWaylandSurfaceRoleCursor
MetaWaylandBuffer *buffer;
};
-G_DEFINE_TYPE (MetaWaylandSurfaceRoleCursor,
- meta_wayland_surface_role_cursor,
- META_TYPE_WAYLAND_SURFACE_ROLE)
+G_DEFINE_TYPE_WITH_PRIVATE (MetaWaylandSurfaceRoleCursor,
+ meta_wayland_surface_role_cursor,
+ META_TYPE_WAYLAND_SURFACE_ROLE)
static void
update_cursor_sprite_texture (MetaWaylandSurfaceRoleCursor *cursor_role)
{
+ MetaWaylandSurfaceRoleCursorPrivate *priv = meta_wayland_surface_role_cursor_get_instance_private
(cursor_role);
MetaWaylandSurface *surface = meta_wayland_surface_role_get_surface (META_WAYLAND_SURFACE_ROLE
(cursor_role));
MetaWaylandBuffer *buffer = meta_wayland_surface_get_buffer (surface);
- MetaCursorSprite *cursor_sprite = cursor_role->cursor_sprite;
+ MetaCursorSprite *cursor_sprite = priv->cursor_sprite;
g_return_if_fail (!buffer || buffer->texture);
- if (!cursor_role->cursor_renderer || !cursor_sprite)
+ if (!priv->cursor_renderer || !cursor_sprite)
return;
if (buffer)
{
meta_cursor_sprite_set_texture (cursor_sprite,
buffer->texture,
- cursor_role->hot_x * surface->scale,
- cursor_role->hot_y * surface->scale);
+ priv->hot_x * surface->scale,
+ priv->hot_y * surface->scale);
- if (cursor_role->buffer)
+ if (priv->buffer)
{
struct wl_resource *buffer_resource;
- g_assert (cursor_role->buffer == buffer);
+ g_assert (priv->buffer == buffer);
buffer_resource = buffer->resource;
- meta_cursor_renderer_realize_cursor_from_wl_buffer (cursor_role->cursor_renderer,
+ meta_cursor_renderer_realize_cursor_from_wl_buffer (priv->cursor_renderer,
cursor_sprite,
buffer_resource);
meta_wayland_surface_unref_buffer_use_count (surface);
- g_clear_object (&cursor_role->buffer);
+ g_clear_object (&priv->buffer);
}
}
else
@@ -81,7 +82,7 @@ update_cursor_sprite_texture (MetaWaylandSurfaceRoleCursor *cursor_role)
meta_cursor_sprite_set_texture (cursor_sprite, NULL, 0, 0);
}
- meta_cursor_renderer_force_update (cursor_role->cursor_renderer);
+ meta_cursor_renderer_force_update (priv->cursor_renderer);
}
static void
@@ -111,13 +112,15 @@ cursor_surface_role_assigned (MetaWaylandSurfaceRole *surface_role)
{
MetaWaylandSurfaceRoleCursor *cursor_role =
META_WAYLAND_SURFACE_ROLE_CURSOR (surface_role);
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
MetaWaylandSurface *surface =
meta_wayland_surface_role_get_surface (surface_role);
MetaWaylandBuffer *buffer = meta_wayland_surface_get_buffer (surface);
if (buffer)
{
- g_set_object (&cursor_role->buffer, buffer);
+ g_set_object (&priv->buffer, buffer);
meta_wayland_surface_ref_buffer_use_count (surface);
}
@@ -130,13 +133,15 @@ cursor_surface_role_pre_commit (MetaWaylandSurfaceRole *surface_role,
{
MetaWaylandSurfaceRoleCursor *cursor_role =
META_WAYLAND_SURFACE_ROLE_CURSOR (surface_role);
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
MetaWaylandSurface *surface =
meta_wayland_surface_role_get_surface (surface_role);
- if (pending->newly_attached && cursor_role->buffer)
+ if (pending->newly_attached && priv->buffer)
{
meta_wayland_surface_unref_buffer_use_count (surface);
- g_clear_object (&cursor_role->buffer);
+ g_clear_object (&priv->buffer);
}
}
@@ -146,14 +151,16 @@ cursor_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
{
MetaWaylandSurfaceRoleCursor *cursor_role =
META_WAYLAND_SURFACE_ROLE_CURSOR (surface_role);
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
MetaWaylandSurface *surface =
meta_wayland_surface_role_get_surface (surface_role);
MetaWaylandBuffer *buffer = meta_wayland_surface_get_buffer (surface);
if (pending->newly_attached)
{
- g_set_object (&cursor_role->buffer, buffer);
- if (cursor_role->buffer)
+ g_set_object (&priv->buffer, buffer);
+ if (priv->buffer)
meta_wayland_surface_ref_buffer_use_count (surface);
}
@@ -171,10 +178,12 @@ cursor_surface_role_is_on_output (MetaWaylandSurfaceRole *role,
meta_wayland_surface_role_get_surface (role);
MetaWaylandSurfaceRoleCursor *cursor_role =
META_WAYLAND_SURFACE_ROLE_CURSOR (surface->role);
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
MetaRectangle rect;
- rect = meta_cursor_renderer_calculate_rect (cursor_role->cursor_renderer,
- cursor_role->cursor_sprite);
+ rect = meta_cursor_renderer_calculate_rect (priv->cursor_renderer,
+ priv->cursor_sprite);
return meta_rectangle_overlap (&rect, &monitor->rect);
}
@@ -183,19 +192,21 @@ cursor_surface_role_dispose (GObject *object)
{
MetaWaylandSurfaceRoleCursor *cursor_role =
META_WAYLAND_SURFACE_ROLE_CURSOR (object);
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
MetaWaylandSurface *surface =
meta_wayland_surface_role_get_surface (META_WAYLAND_SURFACE_ROLE (object));
- g_signal_handlers_disconnect_by_func (cursor_role->cursor_sprite,
+ g_signal_handlers_disconnect_by_func (priv->cursor_sprite,
cursor_sprite_prepare_at, cursor_role);
- g_clear_object (&cursor_role->cursor_renderer);
- g_clear_object (&cursor_role->cursor_sprite);
+ g_clear_object (&priv->cursor_renderer);
+ g_clear_object (&priv->cursor_sprite);
- if (cursor_role->buffer)
+ if (priv->buffer)
{
meta_wayland_surface_unref_buffer_use_count (surface);
- g_clear_object (&cursor_role->buffer);
+ g_clear_object (&priv->buffer);
}
G_OBJECT_CLASS (meta_wayland_surface_role_cursor_parent_class)->dispose (object);
@@ -204,8 +215,11 @@ cursor_surface_role_dispose (GObject *object)
static void
meta_wayland_surface_role_cursor_init (MetaWaylandSurfaceRoleCursor *role)
{
- role->cursor_sprite = meta_cursor_sprite_new ();
- g_signal_connect_object (role->cursor_sprite,
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (role);
+
+ priv->cursor_sprite = meta_cursor_sprite_new ();
+ g_signal_connect_object (priv->cursor_sprite,
"prepare-at",
G_CALLBACK (cursor_sprite_prepare_at),
role,
@@ -230,7 +244,10 @@ meta_wayland_surface_role_cursor_class_init (MetaWaylandSurfaceRoleCursorClass *
MetaCursorSprite *
meta_wayland_surface_role_cursor_get_sprite (MetaWaylandSurfaceRoleCursor *cursor_role)
{
- return cursor_role->cursor_sprite;
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
+
+ return priv->cursor_sprite;
}
void
@@ -238,12 +255,15 @@ meta_wayland_surface_role_cursor_set_hotspot (MetaWaylandSurfaceRoleCursor *curs
gint hotspot_x,
gint hotspot_y)
{
- if (cursor_role->hot_x == hotspot_x &&
- cursor_role->hot_y == hotspot_y)
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
+
+ if (priv->hot_x == hotspot_x &&
+ priv->hot_y == hotspot_y)
return;
- cursor_role->hot_x = hotspot_x;
- cursor_role->hot_y = hotspot_y;
+ priv->hot_x = hotspot_x;
+ priv->hot_y = hotspot_y;
update_cursor_sprite_texture (cursor_role);
}
@@ -252,30 +272,39 @@ meta_wayland_surface_role_cursor_get_hotspot (MetaWaylandSurfaceRoleCursor *curs
gint *hotspot_x,
gint *hotspot_y)
{
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
+
if (hotspot_x)
- *hotspot_x = cursor_role->hot_x;
+ *hotspot_x = priv->hot_x;
if (hotspot_y)
- *hotspot_y = cursor_role->hot_y;
+ *hotspot_y = priv->hot_y;
}
void
meta_wayland_surface_role_cursor_set_renderer (MetaWaylandSurfaceRoleCursor *cursor_role,
MetaCursorRenderer *renderer)
{
- if (cursor_role->cursor_renderer == renderer)
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
+
+ if (priv->cursor_renderer == renderer)
return;
if (renderer)
g_object_ref (renderer);
- if (cursor_role->cursor_renderer)
- g_object_unref (cursor_role->cursor_renderer);
+ if (priv->cursor_renderer)
+ g_object_unref (priv->cursor_renderer);
- cursor_role->cursor_renderer = renderer;
+ priv->cursor_renderer = renderer;
update_cursor_sprite_texture (cursor_role);
}
MetaCursorRenderer *
meta_wayland_surface_role_cursor_get_renderer (MetaWaylandSurfaceRoleCursor *cursor_role)
{
- return cursor_role->cursor_renderer;
+ MetaWaylandSurfaceRoleCursorPrivate *priv =
+ meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
+
+ return priv->cursor_renderer;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]