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

@ -103,12 +103,14 @@ meta_cursor_sprite_xfixes_set_property (GObject *object,
}
MetaCursorSpriteXfixes *
meta_cursor_sprite_xfixes_new (MetaDisplay *display,
GError **error)
meta_cursor_sprite_xfixes_new (MetaDisplay *display,
MetaCursorTracker *cursor_tracker,
GError **error)
{
return g_initable_new (META_TYPE_CURSOR_SPRITE_XFIXES,
NULL, error,
"display", display,
"cursor-tracker", cursor_tracker,
NULL);
}

View File

@ -30,7 +30,8 @@ G_DECLARE_FINAL_TYPE (MetaCursorSpriteXfixes,
META, CURSOR_SPRITE_XFIXES,
MetaCursorSprite)
MetaCursorSpriteXfixes * meta_cursor_sprite_xfixes_new (MetaDisplay *display,
GError **error);
MetaCursorSpriteXfixes * meta_cursor_sprite_xfixes_new (MetaDisplay *display,
MetaCursorTracker *cursor_tracker,
GError **error);
#endif /* META_CURSOR_SPRITE_XFIXES_H */

View File

@ -77,12 +77,16 @@ static gboolean
ensure_xfixes_cursor (MetaCursorTrackerX11 *tracker_x11)
{
MetaDisplay *display = meta_get_display ();
MetaCursorTracker *cursor_tracker;
g_autoptr (GError) error = NULL;
if (tracker_x11->xfixes_cursor)
return FALSE;
tracker_x11->xfixes_cursor = meta_cursor_sprite_xfixes_new (display, &error);
cursor_tracker = META_CURSOR_TRACKER (tracker_x11);
tracker_x11->xfixes_cursor = meta_cursor_sprite_xfixes_new (display,
cursor_tracker,
&error);
if (!tracker_x11->xfixes_cursor)
g_warning ("Failed to create XFIXES cursor: %s", error->message);