[rhythmbox] entry-view: hold a reference on the tree view selection



commit 21294f1ed8c02d3f75adf59673add3bb06601efe
Author: Jonathan Matthew <jonathan d14n org>
Date:   Tue Mar 17 22:42:31 2015 +1000

    entry-view: hold a reference on the tree view selection
    
    Apparently this gets disposed of earlier than we'd like otherwise.
    Also stop paying attention to selection changes when the entry view is
    disposed so we don't try looking at it later on.

 widgets/rb-entry-view.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/widgets/rb-entry-view.c b/widgets/rb-entry-view.c
index a9db4bc..120f592 100644
--- a/widgets/rb-entry-view.c
+++ b/widgets/rb-entry-view.c
@@ -534,6 +534,13 @@ rb_entry_view_dispose (GObject *object)
                view->priv->selection_changed_id = 0;
        }
 
+       if (view->priv->selection) {
+               g_signal_handlers_disconnect_by_func (view->priv->selection,
+                                                     G_CALLBACK (rb_entry_view_selection_changed_cb),
+                                                     view);
+               g_clear_object (&view->priv->selection);
+       }
+
        if (view->priv->playing_model != NULL) {
                g_object_unref (view->priv->playing_model);
                view->priv->playing_model = NULL;
@@ -1819,6 +1826,7 @@ rb_entry_view_constructed (GObject *object)
                                 G_CALLBACK (rb_entry_view_selection_changed_cb),
                                 view,
                                 0);
+       g_object_ref (view->priv->selection);
 
        gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view->priv->treeview), TRUE);
        gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view->priv->treeview), TRUE);


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