StIcon: use g_signal_connect_object() for safety
Prevent a crash in case an icon is destroyed before the texture finishes loading, and something else is keeping the texture alive for any reason. https://bugzilla.gnome.org/show_bug.cgi?id=696720
This commit is contained in:
parent
5d50b08351
commit
ef9c50e63a
@ -410,8 +410,8 @@ st_icon_finish_update (StIcon *icon)
|
||||
st_icon_update_shadow_material (icon);
|
||||
|
||||
/* "pixbuf-change" is actually a misnomer for "texture-changed" */
|
||||
g_signal_connect (priv->icon_texture, "pixbuf-change",
|
||||
G_CALLBACK (on_pixbuf_changed), icon);
|
||||
g_signal_connect_object (priv->icon_texture, "pixbuf-change",
|
||||
G_CALLBACK (on_pixbuf_changed), icon, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -469,7 +469,7 @@ st_icon_update (StIcon *icon)
|
||||
else
|
||||
{
|
||||
/* Will be shown when fully loaded */
|
||||
priv->opacity_handler_id = g_signal_connect (priv->pending_texture, "notify::opacity", G_CALLBACK (opacity_changed_cb), icon);
|
||||
priv->opacity_handler_id = g_signal_connect_object (priv->pending_texture, "notify::opacity", G_CALLBACK (opacity_changed_cb), icon, 0);
|
||||
}
|
||||
}
|
||||
else if (priv->icon_texture)
|
||||
|
Loading…
Reference in New Issue
Block a user