mirror of
https://github.com/brl/mutter.git
synced 2025-06-13 16:59:30 +00:00
cursor: Hold reference to cursor tracker
This is so that it can unregister from it on tear down. The tracker owns references to cursors too, but this cycle is already broken as the backend calls 'g_object_run_dispose()' when tearing the cursor tracker down. Fixes a crash on shutdown. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2181>
This commit is contained in:
@ -279,6 +279,7 @@ meta_cursor_sprite_finalize (GObject *object)
|
||||
g_clear_pointer (&priv->texture, cogl_object_unref);
|
||||
|
||||
meta_cursor_tracker_unregister_cursor_sprite (priv->cursor_tracker, sprite);
|
||||
g_clear_object (&priv->cursor_tracker);
|
||||
|
||||
G_OBJECT_CLASS (meta_cursor_sprite_parent_class)->finalize (object);
|
||||
}
|
||||
@ -296,7 +297,7 @@ meta_cursor_tracker_set_property (GObject *object,
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_CURSOR_TRACKER:
|
||||
priv->cursor_tracker = g_value_get_object (value);
|
||||
g_set_object (&priv->cursor_tracker, g_value_get_object (value));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
|
Reference in New Issue
Block a user