[brasero] Fix a crash with unreadable directories



commit d4ec7527fde17452d284121639b2783b90beed42
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date:   Tue May 12 18:28:59 2009 +0200

    Fix a crash with unreadable directories
    Fix icon displayed in data projects for directories
---
 libbrasero-burn/brasero-track-data-cfg.c |   29 ++++++++++++++---------------
 1 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/libbrasero-burn/brasero-track-data-cfg.c b/libbrasero-burn/brasero-track-data-cfg.c
index fbc0d97..ccfec4a 100644
--- a/libbrasero-burn/brasero-track-data-cfg.c
+++ b/libbrasero-burn/brasero-track-data-cfg.c
@@ -397,8 +397,13 @@ brasero_track_data_cfg_node_shown (GtkTreeModel *model,
 		return;
 	}
 
+	if (!node)
+		return;
+
+	node->is_visible ++;
+
 	if (node->parent && !node->parent->is_root) {
-		if (!node->parent->is_expanded) {
+		if (!node->parent->is_expanded && node->parent->is_visible > 0) {
 			GtkTreePath *treepath;
 
 			node->parent->is_expanded = TRUE;
@@ -410,11 +415,6 @@ brasero_track_data_cfg_node_shown (GtkTreeModel *model,
 		}
 	}
 
-	if (!node)
-		return;
-
-	node->is_visible ++;
-
 	if (node->is_imported) {
 		if (node->is_fake && !node->is_file) {
 			/* we don't load all nodes when importing a session do it now */
@@ -462,8 +462,12 @@ brasero_track_data_cfg_node_hidden (GtkTreeModel *model,
 		return;
 	}
 
-	if (node && node->parent && !node->parent->is_root) {
-		if (node->parent->is_expanded) {
+	if (!node)
+		return;
+
+	node->is_visible --;
+	if (node->parent && !node->parent->is_root) {
+		if (node->parent->is_expanded && node->is_visible == 0) {
 			GtkTreePath *treepath;
 			GtkTreeIter parent_iter;
 
@@ -477,10 +481,6 @@ brasero_track_data_cfg_node_hidden (GtkTreeModel *model,
 		}
 	}
 
-	if (!node)
-		return;
-
-	node->is_visible --;
 
 	if (node->is_imported)
 		return;
@@ -2370,11 +2370,11 @@ brasero_track_data_cfg_init (BraseroTrackDataCfg *object)
 			  object);
 	g_signal_connect (priv->tree,
 			  "unreadable-uri",
-			  G_CALLBACK (brasero_track_data_cfg_unknown_uri_cb),
+			  G_CALLBACK (brasero_track_data_cfg_unreadable_uri_cb),
 			  object);
 	g_signal_connect (priv->tree,
 			  "unknown-uri",
-			  G_CALLBACK (brasero_track_data_cfg_unreadable_uri_cb),
+			  G_CALLBACK (brasero_track_data_cfg_unknown_uri_cb),
 			  object);
 	g_signal_connect (priv->tree,
 			  "recursive-sym",
@@ -2468,7 +2468,6 @@ brasero_track_data_cfg_class_init (BraseroTrackDataCfgClass *klass)
 			  1,
 			  G_TYPE_STRING);
 
-
 	brasero_track_data_cfg_signals [UNREADABLE] = 
 	    g_signal_new ("unreadable_uri",
 			  G_TYPE_FROM_CLASS (klass),



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