* Fixed an issue whith signal handlers when unregistering windows
[modest] / src / widgets / modest-header-view.c
index 5bbaa0f..43886b6 100644 (file)
@@ -1149,7 +1149,10 @@ on_selection_changed (GtkTreeSelection *sel, gpointer user_data)
                       0, header);
 
        g_object_unref (G_OBJECT (header));
-       gtk_tree_path_free(path);
+
+       /* free all items in 'selected' */
+       g_list_foreach (selected, (GFunc)gtk_tree_path_free, NULL);
+       g_list_free (selected);
 }
 
 
@@ -1418,10 +1421,15 @@ idle_notify_headers_count_changed (gpointer data)
        folder = tny_folder_change_get_folder (helper->change);
 
        priv = MODEST_HEADER_VIEW_GET_PRIVATE (helper->self);
+
        g_mutex_lock (priv->observers_lock);
 
-       /* Emmit signal to evaluate how headers changes affects to the window view  */
-       g_signal_emit (G_OBJECT(helper->self), signals[MSG_COUNT_CHANGED_SIGNAL], 0, folder, helper->change);
+       /* Emit signal to evaluate how headers changes affects to the window view  */
+       gdk_threads_enter ();
+       g_signal_emit (G_OBJECT(helper->self), 
+                      signals[MSG_COUNT_CHANGED_SIGNAL], 
+                      0, folder, helper->change);
+       gdk_threads_leave ();
                
        /* Added or removed headers, so data stored on cliboard are invalid  */
        if (modest_email_clipboard_check_source_folder (priv->clipboard, folder))