]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkfilesystemmodel.c
API: treeview: Add gtk_tree_view_get_n_columns()
[~andy/gtk] / gtk / gtkfilesystemmodel.c
index a786ae94b106f72b0ef3e8285c8df2f4f8f6d342..15497e645fcc2d0429f7cc8585869417c91cae23 100644 (file)
@@ -31,7 +31,6 @@
 #include "gtktreedatalist.h"
 #include "gtktreednd.h"
 #include "gtktreemodel.h"
-#include "gtkalias.h"
 
 /*** Structure: how GtkFileSystemModel works
  *
@@ -513,10 +512,13 @@ gtk_file_system_model_get_iter (GtkTreeModel *tree_model,
 {
   g_return_val_if_fail (gtk_tree_path_get_depth (path) > 0, FALSE);
 
+  if (gtk_tree_path_get_depth (path) > 1)
+    return FALSE;
+
   return gtk_file_system_model_iter_nth_child (tree_model, 
                                                iter,
                                                NULL, 
-                                               gtk_tree_path_get_indices (path, NULL)[0]);
+                                               gtk_tree_path_get_indices (path)[0]);
 }
 
 static GtkTreePath *
@@ -1150,7 +1152,9 @@ gtk_file_system_model_query_done (GObject *     object,
   if (info == NULL)
     return;
 
+  gdk_threads_enter ();
   _gtk_file_system_model_update_file (model, file, info, TRUE);
+  gdk_threads_leave ();
 }
 
 static void
@@ -1175,7 +1179,9 @@ gtk_file_system_model_monitor_change (GFileMonitor *      monitor,
                                  model);
         break;
       case G_FILE_MONITOR_EVENT_DELETED:
+       gdk_threads_enter ();
         remove_file (model, file);
+       gdk_threads_leave ();
         break;
       case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
         /* FIXME: use freeze/thaw with this somehow? */
@@ -1778,7 +1784,10 @@ _gtk_file_system_model_update_file (GtkFileSystemModel *model,
 
   id = node_get_for_file (model, file);
   if (id == 0)
-    add_file (model, file, info);
+    {
+      add_file (model, file, info);
+      id = node_get_for_file (model, file);
+    }
 
   node = get_node (model, id);