fixes for assignment errors with GTK_CTREE_NODE_NEXT/PREV
Sat Oct 3 01:25:24 1998 Lars Hamann <lars@gtk.org> * gtk/gtkctree.c (gtk_ctree_insert_gnode) (real_tree_collapse) (gtk_ctree_link) (gtk_ctree_unlink) (real_tree_expand): fixes for assignment errors with GTK_CTREE_NODE_NEXT/PREV (real_tree_expand) (real_tree_collapse): don't expand/collapse a leaf
This commit is contained in:
		@ -1,3 +1,12 @@
 | 
				
			|||||||
 | 
					Sat Oct  3 01:25:24 1998  Lars Hamann  <lars@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gtk/gtkctree.c (gtk_ctree_insert_gnode) (real_tree_collapse)
 | 
				
			||||||
 | 
						(gtk_ctree_link) (gtk_ctree_unlink) (real_tree_expand): 
 | 
				
			||||||
 | 
						fixes for assignment errors with GTK_CTREE_NODE_NEXT/PREV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(real_tree_expand) (real_tree_collapse):
 | 
				
			||||||
 | 
						don't expand/collapse a leaf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
					Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
						* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,12 @@
 | 
				
			|||||||
 | 
					Sat Oct  3 01:25:24 1998  Lars Hamann  <lars@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gtk/gtkctree.c (gtk_ctree_insert_gnode) (real_tree_collapse)
 | 
				
			||||||
 | 
						(gtk_ctree_link) (gtk_ctree_unlink) (real_tree_expand): 
 | 
				
			||||||
 | 
						fixes for assignment errors with GTK_CTREE_NODE_NEXT/PREV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(real_tree_expand) (real_tree_collapse):
 | 
				
			||||||
 | 
						don't expand/collapse a leaf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
					Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
						* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,12 @@
 | 
				
			|||||||
 | 
					Sat Oct  3 01:25:24 1998  Lars Hamann  <lars@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gtk/gtkctree.c (gtk_ctree_insert_gnode) (real_tree_collapse)
 | 
				
			||||||
 | 
						(gtk_ctree_link) (gtk_ctree_unlink) (real_tree_expand): 
 | 
				
			||||||
 | 
						fixes for assignment errors with GTK_CTREE_NODE_NEXT/PREV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(real_tree_expand) (real_tree_collapse):
 | 
				
			||||||
 | 
						don't expand/collapse a leaf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
					Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
						* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,12 @@
 | 
				
			|||||||
 | 
					Sat Oct  3 01:25:24 1998  Lars Hamann  <lars@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gtk/gtkctree.c (gtk_ctree_insert_gnode) (real_tree_collapse)
 | 
				
			||||||
 | 
						(gtk_ctree_link) (gtk_ctree_unlink) (real_tree_expand): 
 | 
				
			||||||
 | 
						fixes for assignment errors with GTK_CTREE_NODE_NEXT/PREV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(real_tree_expand) (real_tree_collapse):
 | 
				
			||||||
 | 
						don't expand/collapse a leaf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
					Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
						* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,12 @@
 | 
				
			|||||||
 | 
					Sat Oct  3 01:25:24 1998  Lars Hamann  <lars@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gtk/gtkctree.c (gtk_ctree_insert_gnode) (real_tree_collapse)
 | 
				
			||||||
 | 
						(gtk_ctree_link) (gtk_ctree_unlink) (real_tree_expand): 
 | 
				
			||||||
 | 
						fixes for assignment errors with GTK_CTREE_NODE_NEXT/PREV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(real_tree_expand) (real_tree_collapse):
 | 
				
			||||||
 | 
						don't expand/collapse a leaf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
					Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
						* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,12 @@
 | 
				
			|||||||
 | 
					Sat Oct  3 01:25:24 1998  Lars Hamann  <lars@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gtk/gtkctree.c (gtk_ctree_insert_gnode) (real_tree_collapse)
 | 
				
			||||||
 | 
						(gtk_ctree_link) (gtk_ctree_unlink) (real_tree_expand): 
 | 
				
			||||||
 | 
						fixes for assignment errors with GTK_CTREE_NODE_NEXT/PREV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(real_tree_expand) (real_tree_collapse):
 | 
				
			||||||
 | 
						don't expand/collapse a leaf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
					Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
						* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,12 @@
 | 
				
			|||||||
 | 
					Sat Oct  3 01:25:24 1998  Lars Hamann  <lars@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gtk/gtkctree.c (gtk_ctree_insert_gnode) (real_tree_collapse)
 | 
				
			||||||
 | 
						(gtk_ctree_link) (gtk_ctree_unlink) (real_tree_expand): 
 | 
				
			||||||
 | 
						fixes for assignment errors with GTK_CTREE_NODE_NEXT/PREV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(real_tree_expand) (real_tree_collapse):
 | 
				
			||||||
 | 
						don't expand/collapse a leaf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
					Fri Oct  2 16:10:36 1998  Tim Janik  <timj@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
						* gtk/gtktypeutils.c (gtk_type_enum_find_value): make sure we don't
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										133
									
								
								gtk/gtkctree.c
									
									
									
									
									
								
							
							
						
						
									
										133
									
								
								gtk/gtkctree.c
									
									
									
									
									
								
							@ -2466,7 +2466,9 @@ gtk_ctree_link (GtkCTree     *ctree,
 | 
				
			|||||||
		gboolean      update_focus_row)
 | 
							gboolean      update_focus_row)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  GtkCList *clist;
 | 
					  GtkCList *clist;
 | 
				
			||||||
  GtkCTreeNode *list_end;
 | 
					  GList *list_end;
 | 
				
			||||||
 | 
					  GList *list;
 | 
				
			||||||
 | 
					  GList *work;
 | 
				
			||||||
  gboolean visible = FALSE;
 | 
					  gboolean visible = FALSE;
 | 
				
			||||||
  gint rows = 0;
 | 
					  gint rows = 0;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@ -2489,8 +2491,8 @@ gtk_ctree_link (GtkCTree     *ctree,
 | 
				
			|||||||
      clist->undo_unselection = NULL;
 | 
					      clist->undo_unselection = NULL;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (rows = 1, list_end = node; GTK_CTREE_NODE_NEXT (list_end);
 | 
					  for (rows = 1, list_end = (GList *)node; list_end->next;
 | 
				
			||||||
       list_end = GTK_CTREE_NODE_NEXT (list_end))
 | 
					       list_end = list_end->next)
 | 
				
			||||||
    rows++;
 | 
					    rows++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  GTK_CTREE_ROW (node)->parent = parent;
 | 
					  GTK_CTREE_ROW (node)->parent = parent;
 | 
				
			||||||
@ -2503,19 +2505,17 @@ gtk_ctree_link (GtkCTree     *ctree,
 | 
				
			|||||||
      clist->rows += rows;
 | 
					      clist->rows += rows;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (parent)
 | 
				
			||||||
 | 
					    work = (GList *)(GTK_CTREE_ROW (parent)->children);
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    work = clist->row_list;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (sibling)
 | 
					  if (sibling)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      GtkCTreeNode *work;
 | 
					      if (work != (GList *)sibling)
 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (parent)
 | 
					 | 
				
			||||||
	work = GTK_CTREE_ROW (parent)->children;
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
	work = GTK_CTREE_NODE (clist->row_list);
 | 
					 | 
				
			||||||
      if (work != sibling)
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	  while (GTK_CTREE_ROW (work)->sibling != sibling)
 | 
						  while (GTK_CTREE_ROW (work)->sibling != sibling)
 | 
				
			||||||
	    work = GTK_CTREE_ROW (work)->sibling;
 | 
						    work = (GList *)(GTK_CTREE_ROW (work)->sibling);
 | 
				
			||||||
	  GTK_CTREE_ROW (work)->sibling = node;
 | 
						  GTK_CTREE_ROW (work)->sibling = node;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2523,61 +2523,66 @@ gtk_ctree_link (GtkCTree     *ctree,
 | 
				
			|||||||
	clist->row_list = (GList *) node;
 | 
						clist->row_list = (GList *) node;
 | 
				
			||||||
      if (GTK_CTREE_NODE_PREV (sibling) &&
 | 
					      if (GTK_CTREE_NODE_PREV (sibling) &&
 | 
				
			||||||
	  GTK_CTREE_NODE_NEXT (GTK_CTREE_NODE_PREV (sibling)) == sibling)
 | 
						  GTK_CTREE_NODE_NEXT (GTK_CTREE_NODE_PREV (sibling)) == sibling)
 | 
				
			||||||
	GTK_CTREE_NODE_NEXT (GTK_CTREE_NODE_PREV (sibling)) = node;
 | 
						{
 | 
				
			||||||
 | 
						  list = (GList *)GTK_CTREE_NODE_PREV (sibling);
 | 
				
			||||||
 | 
						  list->next = (GList *)node;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      GTK_CTREE_NODE_PREV (node) = GTK_CTREE_NODE_PREV (sibling);
 | 
					      list = (GList *)node;
 | 
				
			||||||
      GTK_CTREE_NODE_NEXT (list_end) = sibling;
 | 
					      list->prev = (GList *)GTK_CTREE_NODE_PREV (sibling);
 | 
				
			||||||
      GTK_CTREE_NODE_PREV (sibling) = list_end;
 | 
					      list_end->next = (GList *)sibling;
 | 
				
			||||||
 | 
					      list = (GList *)sibling;
 | 
				
			||||||
 | 
					      list->prev = list_end;
 | 
				
			||||||
      if (parent && GTK_CTREE_ROW (parent)->children == sibling)
 | 
					      if (parent && GTK_CTREE_ROW (parent)->children == sibling)
 | 
				
			||||||
	GTK_CTREE_ROW (parent)->children = node;
 | 
						GTK_CTREE_ROW (parent)->children = node;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      GtkCTreeNode *work;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (parent)
 | 
					 | 
				
			||||||
	work = GTK_CTREE_ROW (parent)->children;
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
	work = GTK_CTREE_NODE (clist->row_list);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (work)
 | 
					      if (work)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	  /* find sibling */
 | 
						  /* find sibling */
 | 
				
			||||||
	  while (GTK_CTREE_ROW (work)->sibling)
 | 
						  while (GTK_CTREE_ROW (work)->sibling)
 | 
				
			||||||
	    work = GTK_CTREE_ROW (work)->sibling;
 | 
						    work = (GList *)(GTK_CTREE_ROW (work)->sibling);
 | 
				
			||||||
	  GTK_CTREE_ROW (work)->sibling = node;
 | 
						  GTK_CTREE_ROW (work)->sibling = node;
 | 
				
			||||||
	  
 | 
						  
 | 
				
			||||||
	  /* find last visible child of sibling */
 | 
						  /* find last visible child of sibling */
 | 
				
			||||||
	  work = gtk_ctree_last_visible (ctree, work);
 | 
						  work = (GList *) gtk_ctree_last_visible (ctree,
 | 
				
			||||||
 | 
											   GTK_CTREE_NODE (work));
 | 
				
			||||||
	  
 | 
						  
 | 
				
			||||||
	  GTK_CTREE_NODE_NEXT (list_end) = GTK_CTREE_NODE_NEXT (work);
 | 
						  list_end->next = work->next;
 | 
				
			||||||
	  if (GTK_CTREE_NODE_NEXT (work))
 | 
						  if (work->next)
 | 
				
			||||||
	    GTK_CTREE_NODE_PREV (GTK_CTREE_NODE_NEXT (work)) = list_end;
 | 
						    list = work->next->prev = list_end;
 | 
				
			||||||
	  GTK_CTREE_NODE_NEXT (work) = node;
 | 
						  work->next = (GList *)node;
 | 
				
			||||||
	  GTK_CTREE_NODE_PREV (node) = work;
 | 
						  list = (GList *)node;
 | 
				
			||||||
 | 
						  list->prev = work;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	  if (parent)
 | 
						  if (parent)
 | 
				
			||||||
	    {
 | 
						    {
 | 
				
			||||||
	      GTK_CTREE_ROW (parent)->children = node;
 | 
						      GTK_CTREE_ROW (parent)->children = node;
 | 
				
			||||||
	      GTK_CTREE_NODE_PREV (node) = parent;
 | 
						      list = (GList *)node;
 | 
				
			||||||
 | 
						      list->prev = (GList *)parent;
 | 
				
			||||||
	      if (GTK_CTREE_ROW (parent)->expanded)
 | 
						      if (GTK_CTREE_ROW (parent)->expanded)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		  GTK_CTREE_NODE_NEXT (list_end)= GTK_CTREE_NODE_NEXT (parent);
 | 
							  list_end->next = (GList *)GTK_CTREE_NODE_NEXT (parent);
 | 
				
			||||||
		  if (GTK_CTREE_NODE_NEXT(parent))
 | 
							  if (GTK_CTREE_NODE_NEXT(parent))
 | 
				
			||||||
		    GTK_CTREE_NODE_PREV (GTK_CTREE_NODE_NEXT (parent)) =
 | 
							    {
 | 
				
			||||||
		      list_end;
 | 
							      list = (GList *)GTK_CTREE_NODE_NEXT (parent);
 | 
				
			||||||
		  GTK_CTREE_NODE_NEXT (parent) = node;
 | 
							      list->prev = list_end;
 | 
				
			||||||
 | 
							    }
 | 
				
			||||||
 | 
							  list = (GList *)parent;
 | 
				
			||||||
 | 
							  list->next = (GList *)node;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	      else
 | 
						      else
 | 
				
			||||||
		GTK_CTREE_NODE_NEXT (list_end) = NULL;
 | 
							list_end->next = NULL;
 | 
				
			||||||
	    }
 | 
						    }
 | 
				
			||||||
	  else
 | 
						  else
 | 
				
			||||||
	    {
 | 
						    {
 | 
				
			||||||
	      clist->row_list = (GList *)node;
 | 
						      clist->row_list = (GList *)node;
 | 
				
			||||||
	      GTK_CTREE_NODE_PREV (node) = NULL;
 | 
						      list = (GList *)node;
 | 
				
			||||||
	      GTK_CTREE_NODE_NEXT (list_end) = NULL;
 | 
						      list->prev = NULL;
 | 
				
			||||||
 | 
						      list_end->next = NULL;
 | 
				
			||||||
	    }
 | 
						    }
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -2586,7 +2591,7 @@ gtk_ctree_link (GtkCTree     *ctree,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if (clist->row_list_end == NULL ||
 | 
					  if (clist->row_list_end == NULL ||
 | 
				
			||||||
      clist->row_list_end->next == (GList *)node)
 | 
					      clist->row_list_end->next == (GList *)node)
 | 
				
			||||||
    GTK_CTREE_NODE (clist->row_list_end) = list_end;
 | 
					    clist->row_list_end = list_end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (visible && update_focus_row)
 | 
					  if (visible && update_focus_row)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@ -2613,6 +2618,7 @@ gtk_ctree_unlink (GtkCTree     *ctree,
 | 
				
			|||||||
  gint visible;
 | 
					  gint visible;
 | 
				
			||||||
  GtkCTreeNode *work;
 | 
					  GtkCTreeNode *work;
 | 
				
			||||||
  GtkCTreeNode *parent;
 | 
					  GtkCTreeNode *parent;
 | 
				
			||||||
 | 
					  GList *list;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  g_return_if_fail (ctree != NULL);
 | 
					  g_return_if_fail (ctree != NULL);
 | 
				
			||||||
  g_return_if_fail (GTK_IS_CTREE (ctree));
 | 
					  g_return_if_fail (GTK_IS_CTREE (ctree));
 | 
				
			||||||
@ -2670,13 +2676,18 @@ gtk_ctree_unlink (GtkCTree     *ctree,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if (work)
 | 
					  if (work)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      GTK_CTREE_NODE_NEXT (GTK_CTREE_NODE_PREV (work)) = NULL;
 | 
					      list = (GList *)GTK_CTREE_NODE_PREV (work);
 | 
				
			||||||
      GTK_CTREE_NODE_PREV (work) = GTK_CTREE_NODE_PREV (node);
 | 
					      list->next = NULL;
 | 
				
			||||||
 | 
					      list = (GList *)work;
 | 
				
			||||||
 | 
					      list->prev = (GList *)GTK_CTREE_NODE_PREV (node);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (GTK_CTREE_NODE_PREV (node) &&
 | 
					  if (GTK_CTREE_NODE_PREV (node) &&
 | 
				
			||||||
      GTK_CTREE_NODE_NEXT (GTK_CTREE_NODE_PREV (node)) == node)
 | 
					      GTK_CTREE_NODE_NEXT (GTK_CTREE_NODE_PREV (node)) == node)
 | 
				
			||||||
    GTK_CTREE_NODE_NEXT (GTK_CTREE_NODE_PREV (node)) = work;
 | 
					    {
 | 
				
			||||||
 | 
					      list = (GList *)GTK_CTREE_NODE_PREV (node);
 | 
				
			||||||
 | 
					      list->next = (GList *)work;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* update tree */
 | 
					  /* update tree */
 | 
				
			||||||
  parent = GTK_CTREE_ROW (node)->parent;
 | 
					  parent = GTK_CTREE_ROW (node)->parent;
 | 
				
			||||||
@ -2849,7 +2860,7 @@ real_tree_expand (GtkCTree     *ctree,
 | 
				
			|||||||
  g_return_if_fail (ctree != NULL);
 | 
					  g_return_if_fail (ctree != NULL);
 | 
				
			||||||
  g_return_if_fail (GTK_IS_CTREE (ctree));
 | 
					  g_return_if_fail (GTK_IS_CTREE (ctree));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!node || GTK_CTREE_ROW (node)->expanded)
 | 
					  if (!node || GTK_CTREE_ROW (node)->expanded || GTK_CTREE_ROW (node)->is_leaf)
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  clist = GTK_CLIST (ctree);
 | 
					  clist = GTK_CLIST (ctree);
 | 
				
			||||||
@ -2898,6 +2909,7 @@ real_tree_expand (GtkCTree     *ctree,
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      gint tmp = 0;
 | 
					      gint tmp = 0;
 | 
				
			||||||
      gint row;
 | 
					      gint row;
 | 
				
			||||||
 | 
					      GList *list;
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      while (GTK_CTREE_NODE_NEXT (work))
 | 
					      while (GTK_CTREE_NODE_NEXT (work))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@ -2905,14 +2917,19 @@ real_tree_expand (GtkCTree     *ctree,
 | 
				
			|||||||
	  tmp++;
 | 
						  tmp++;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      GTK_CTREE_NODE_NEXT (work) = GTK_CTREE_NODE_NEXT (node);
 | 
					      list = (GList *)work;
 | 
				
			||||||
 | 
					      list->next = (GList *)GTK_CTREE_NODE_NEXT (node);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (GTK_CTREE_NODE_NEXT (node))
 | 
					      if (GTK_CTREE_NODE_NEXT (node))
 | 
				
			||||||
	GTK_CTREE_NODE_PREV (GTK_CTREE_NODE_NEXT (node)) = work;
 | 
						{
 | 
				
			||||||
 | 
						  list = (GList *)GTK_CTREE_NODE_NEXT (node);
 | 
				
			||||||
 | 
						  list->prev = (GList *)work;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
	clist->row_list_end = (GList *)work;
 | 
						clist->row_list_end = (GList *)work;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      GTK_CTREE_NODE_NEXT (node) = GTK_CTREE_ROW (node)->children;
 | 
					      list = (GList *)node;
 | 
				
			||||||
 | 
					      list->next = (GList *)(GTK_CTREE_ROW (node)->children);
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      if (gtk_ctree_is_viewable (ctree, node))
 | 
					      if (gtk_ctree_is_viewable (ctree, node))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@ -2937,7 +2954,7 @@ real_tree_collapse (GtkCTree     *ctree,
 | 
				
			|||||||
  g_return_if_fail (ctree != NULL);
 | 
					  g_return_if_fail (ctree != NULL);
 | 
				
			||||||
  g_return_if_fail (GTK_IS_CTREE (ctree));
 | 
					  g_return_if_fail (GTK_IS_CTREE (ctree));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!node || !GTK_CTREE_ROW (node)->expanded)
 | 
					  if (!node || !GTK_CTREE_ROW (node)->expanded ||GTK_CTREE_ROW (node)->is_leaf)
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  clist = GTK_CLIST (ctree);
 | 
					  clist = GTK_CLIST (ctree);
 | 
				
			||||||
@ -2986,6 +3003,7 @@ real_tree_collapse (GtkCTree     *ctree,
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      gint tmp = 0;
 | 
					      gint tmp = 0;
 | 
				
			||||||
      gint row;
 | 
					      gint row;
 | 
				
			||||||
 | 
					      GList *list;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      while (work && GTK_CTREE_ROW (work)->level > level)
 | 
					      while (work && GTK_CTREE_ROW (work)->level > level)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@ -2995,13 +3013,17 @@ real_tree_collapse (GtkCTree     *ctree,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      if (work)
 | 
					      if (work)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	  GTK_CTREE_NODE_NEXT (node) = work;
 | 
						  list = (GList *)node;
 | 
				
			||||||
	  GTK_CTREE_NODE_NEXT (GTK_CTREE_NODE_PREV (work)) = NULL;
 | 
						  list->next = (GList *)work;
 | 
				
			||||||
	  GTK_CTREE_NODE_PREV (work) = node;
 | 
						  list = (GList *)GTK_CTREE_NODE_PREV (work);
 | 
				
			||||||
 | 
						  list->next = NULL;
 | 
				
			||||||
 | 
						  list = (GList *)work;
 | 
				
			||||||
 | 
						  list->prev = (GList *)node;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	  GTK_CTREE_NODE_NEXT (node) = NULL;
 | 
						  list = (GList *)node;
 | 
				
			||||||
 | 
						  list->next = NULL;
 | 
				
			||||||
	  clist->row_list_end = (GList *)node;
 | 
						  clist->row_list_end = (GList *)node;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -3809,7 +3831,8 @@ gtk_ctree_insert_node (GtkCTree     *ctree,
 | 
				
			|||||||
	GTK_CLIST_CLASS_FW (clist)->set_cell_contents
 | 
						GTK_CLIST_CLASS_FW (clist)->set_cell_contents
 | 
				
			||||||
	  (clist, &(new_row->row), i, GTK_CELL_TEXT, text[i], 0, NULL, NULL);
 | 
						  (clist, &(new_row->row), i, GTK_CELL_TEXT, text[i], 0, NULL, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_node_info (ctree, node, text ? text[ctree->tree_column] : NULL, spacing, pixmap_closed,
 | 
					  set_node_info (ctree, node, text ?
 | 
				
			||||||
 | 
							 text[ctree->tree_column] : NULL, spacing, pixmap_closed,
 | 
				
			||||||
		 mask_closed, pixmap_opened, mask_opened, is_leaf, expanded);
 | 
							 mask_closed, pixmap_opened, mask_opened, is_leaf, expanded);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* sorted insertion */
 | 
					  /* sorted insertion */
 | 
				
			||||||
@ -3845,7 +3868,7 @@ gtk_ctree_insert_gnode (GtkCTree          *ctree,
 | 
				
			|||||||
  GtkCTreeNode *cnode = NULL;
 | 
					  GtkCTreeNode *cnode = NULL;
 | 
				
			||||||
  GtkCTreeNode *child = NULL;
 | 
					  GtkCTreeNode *child = NULL;
 | 
				
			||||||
  GtkCTreeNode *new_child;
 | 
					  GtkCTreeNode *new_child;
 | 
				
			||||||
  GtkCTreeRow *new_row;
 | 
					  GList *list;
 | 
				
			||||||
  gboolean thaw;
 | 
					  gboolean thaw;
 | 
				
			||||||
  GNode *work;
 | 
					  GNode *work;
 | 
				
			||||||
  guint depth = 1;
 | 
					  guint depth = 1;
 | 
				
			||||||
@ -3862,9 +3885,9 @@ gtk_ctree_insert_gnode (GtkCTree          *ctree,
 | 
				
			|||||||
  if (parent)
 | 
					  if (parent)
 | 
				
			||||||
    depth = GTK_CTREE_ROW (parent)->level + 1;
 | 
					    depth = GTK_CTREE_ROW (parent)->level + 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  new_row = row_new (ctree);
 | 
					  list = g_list_alloc ();
 | 
				
			||||||
  cnode = GTK_CTREE_NODE (g_list_alloc ());
 | 
					  list->data = row_new (ctree);
 | 
				
			||||||
  GTK_CTREE_ROW (cnode) = new_row;
 | 
					  cnode = GTK_CTREE_NODE (list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  thaw = !GTK_CLIST_FROZEN (clist);
 | 
					  thaw = !GTK_CLIST_FROZEN (clist);
 | 
				
			||||||
  if (thaw)
 | 
					  if (thaw)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user