improved updating of view_dir_tree
authorVladimir Nadvornik <nadvornik@suse.cz>
Sun, 27 Jul 2008 08:57:12 +0000 (08:57 +0000)
committerVladimir Nadvornik <nadvornik@suse.cz>
Sun, 27 Jul 2008 08:57:12 +0000 (08:57 +0000)
src/view_dir.c
src/view_dir_tree.c

index 4a5f855..ad582cb 100644 (file)
@@ -1081,7 +1081,7 @@ static void vd_notify_cb(FileData *fd, NotifyType type, gpointer data)
 
                if (vd_find_row(vd, base_fd, &iter))
                        {
-                       vdtree_populate_path_by_iter(vd, &iter, FALSE, vd->dir_fd);
+                       vdtree_populate_path_by_iter(vd, &iter, TRUE, vd->dir_fd);
                        } 
 
                file_data_unref(base_fd);
index 05ad6c4..2f61032 100644 (file)
@@ -436,7 +436,6 @@ gint vdtree_populate_path_by_iter(ViewDir *vd, GtkTreeIter *iter, gint force, Fi
 
        if (nd->expanded)
                {
-               if (!force && current_time - nd->last_update < 10) return TRUE;
                if (!isdir(nd->fd->path))
                        {
                        if (vd->click_fd == nd->fd) vd->click_fd = NULL;
@@ -445,7 +444,12 @@ gint vdtree_populate_path_by_iter(ViewDir *vd, GtkTreeIter *iter, gint force, Fi
                        vdtree_node_free(nd);
                        return FALSE;
                        }
-               if (!force && nd->fd->version == nd->version) return TRUE;
+               if (!force && current_time - nd->last_update < 2) 
+                       {
+                       DEBUG_1("Too frequent update of %s", nd->fd->path);
+                       return TRUE;
+                       }
+               if (nd->fd->version == nd->version) return TRUE;
                }
 
        vdtree_busy_push(vd);