cursor-sprite: Register all cursor sprites with the cursor tracker

This will later be used to invalidate GPU state when closing device
nodes.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2147>
This commit is contained in:
Jonas Ådahl
2021-11-15 14:24:53 +01:00
committed by Marge Bot
parent c498ae337f
commit 25ed64b61d
13 changed files with 141 additions and 14 deletions

View File

@ -74,6 +74,8 @@ typedef struct _MetaCursorTrackerPrivate
MetaCursorSprite *window_cursor;
MetaCursorSprite *root_cursor;
GList *cursor_sprites;
} MetaCursorTrackerPrivate;
G_DEFINE_TYPE_WITH_PRIVATE (MetaCursorTracker, meta_cursor_tracker,
@ -532,3 +534,32 @@ meta_cursor_tracker_get_backend (MetaCursorTracker *tracker)
return priv->backend;
}
void
meta_cursor_tracker_register_cursor_sprite (MetaCursorTracker *tracker,
MetaCursorSprite *sprite)
{
MetaCursorTrackerPrivate *priv =
meta_cursor_tracker_get_instance_private (tracker);
priv->cursor_sprites = g_list_prepend (priv->cursor_sprites, sprite);
}
void
meta_cursor_tracker_unregister_cursor_sprite (MetaCursorTracker *tracker,
MetaCursorSprite *sprite)
{
MetaCursorTrackerPrivate *priv =
meta_cursor_tracker_get_instance_private (tracker);
priv->cursor_sprites = g_list_remove (priv->cursor_sprites, sprite);
}
GList *
meta_cursor_tracker_peek_cursor_sprites (MetaCursorTracker *tracker)
{
MetaCursorTrackerPrivate *priv =
meta_cursor_tracker_get_instance_private (tracker);
return priv->cursor_sprites;
}