[gnome-photos/gnome-3-18] embed: Fix the lifetime of the signal handlers



commit 23e91eff9c59243e1e1d3af0c03f7d1c384b08f2
Author: Debarshi Ray <debarshir gnome org>
Date:   Thu Oct 29 02:23:36 2015 +0100

    embed: Fix the lifetime of the signal handlers
    
    A ViewModel instance can have "hidden" references held by the
    GtkTreeRowReferences of each item that is present in the model. Since
    items are owned by the ItemManager, they can outlive the Embed.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=757199

 src/photos-embed.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)
---
diff --git a/src/photos-embed.c b/src/photos-embed.c
index 3538020..f26f360 100644
--- a/src/photos-embed.c
+++ b/src/photos-embed.c
@@ -681,28 +681,28 @@ photos_embed_init (PhotosEmbed *self)
   name = photos_view_container_get_name (PHOTOS_VIEW_CONTAINER (priv->overview));
   gtk_stack_add_titled (GTK_STACK (priv->stack), priv->overview, "overview", name);
   model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER (priv->overview));
-  g_signal_connect_swapped (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self);
-  g_signal_connect_swapped (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self);
+  g_signal_connect_object (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self, 
G_CONNECT_SWAPPED);
+  g_signal_connect_object (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self, 
G_CONNECT_SWAPPED);
 
   priv->collections = photos_view_container_new (PHOTOS_WINDOW_MODE_COLLECTIONS, _("Albums"));
   name = photos_view_container_get_name (PHOTOS_VIEW_CONTAINER (priv->collections));
   gtk_stack_add_titled (GTK_STACK (priv->stack), priv->collections, "collections", name);
   model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER (priv->collections));
-  g_signal_connect_swapped (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self);
-  g_signal_connect_swapped (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self);
+  g_signal_connect_object (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self, 
G_CONNECT_SWAPPED);
+  g_signal_connect_object (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self, 
G_CONNECT_SWAPPED);
 
   priv->favorites = photos_view_container_new (PHOTOS_WINDOW_MODE_FAVORITES, _("Favorites"));
   name = photos_view_container_get_name (PHOTOS_VIEW_CONTAINER (priv->favorites));
   gtk_stack_add_titled (GTK_STACK (priv->stack), priv->favorites, "favorites", name);
   model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER (priv->favorites));
-  g_signal_connect_swapped (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self);
-  g_signal_connect_swapped (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self);
+  g_signal_connect_object (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self, 
G_CONNECT_SWAPPED);
+  g_signal_connect_object (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self, 
G_CONNECT_SWAPPED);
 
   priv->search = photos_view_container_new (PHOTOS_WINDOW_MODE_SEARCH, _("Search"));
   gtk_stack_add_named (GTK_STACK (priv->stack), priv->search, "search");
   model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER (priv->search));
-  g_signal_connect_swapped (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self);
-  g_signal_connect_swapped (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self);
+  g_signal_connect_object (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self, 
G_CONNECT_SWAPPED);
+  g_signal_connect_object (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self, 
G_CONNECT_SWAPPED);
 
   priv->preview = photos_preview_view_new (GTK_OVERLAY (priv->stack_overlay));
   gtk_stack_add_named (GTK_STACK (priv->stack), priv->preview, "preview");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]