diff options
Diffstat (limited to 'src/backends/meta-cursor.c')
-rw-r--r-- | src/backends/meta-cursor.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/backends/meta-cursor.c b/src/backends/meta-cursor.c index a0abd9cd6..539d037fe 100644 --- a/src/backends/meta-cursor.c +++ b/src/backends/meta-cursor.c @@ -45,6 +45,9 @@ typedef struct _MetaCursorSpritePrivate float texture_scale; MetaMonitorTransform texture_transform; int hot_x, hot_y; + + MetaCursorPrepareFunc prepare_func; + gpointer prepare_func_data; } MetaCursorSpritePrivate; G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (MetaCursorSprite, @@ -188,12 +191,28 @@ meta_cursor_sprite_get_texture_transform (MetaCursorSprite *sprite) } void +meta_cursor_sprite_set_prepare_func (MetaCursorSprite *sprite, + MetaCursorPrepareFunc func, + gpointer user_data) +{ + MetaCursorSpritePrivate *priv = + meta_cursor_sprite_get_instance_private (sprite); + + priv->prepare_func = func; + priv->prepare_func_data = user_data; +} + +void meta_cursor_sprite_prepare_at (MetaCursorSprite *sprite, float best_scale, int x, int y) { - g_signal_emit (sprite, signals[PREPARE_AT], 0, best_scale, x, y); + MetaCursorSpritePrivate *priv = + meta_cursor_sprite_get_instance_private (sprite); + + if (priv->prepare_func) + priv->prepare_func (sprite, best_scale, x, y, priv->prepare_func_data); } gboolean |