diff -urNad gnotime-2.2.3+timers~/src/ctree.c gnotime-2.2.3+timers/src/ctree.c --- gnotime-2.2.3+timers~/src/ctree.c 2007-10-27 13:57:38.000000000 -0200 +++ gnotime-2.2.3+timers/src/ctree.c 2007-12-04 22:56:02.000000000 -0200 @@ -667,6 +667,8 @@ * from which we were cutted. */ ctree_update_label (ptw, old_parent); + ctree_setup (ptw, ptw->proj_list); + ptw->source_ctree_node = NULL; ptw->parent_ctree_node = NULL; ptw->sibling_ctree_node = NULL; @@ -684,15 +686,23 @@ if (!source_node) return FALSE; + if (!parent_pixmap->window) { gtk_widget_realize (parent_pixmap); gtk_widget_realize (sibling_pixmap); } + /* Record the values. We don't actually reparent anything - * until the drag has completed. */ - ptw->source_ctree_node = source_node; + * until the drag has completed. + * Record the source_node only if it was not recorded before + * to work around a bug in GtkCTree */ + + if (!ptw->source_ctree_node) + { + ptw->source_ctree_node = source_node; + } ptw->parent_ctree_node = new_parent; ptw->sibling_ctree_node = new_sibling;