forked from AuroraMiddleware/gtk
fix stupid missing statement
Tue Jun 26 12:59:28 2001 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_model): fix stupid missing statement * gtk/gtktreeview.c (gtk_tree_view_set_destroy_count_func): New private function for ATK. It notifies you of how many _visible_ children are deleted when a node is deleted. Should be used by atk only.
This commit is contained in:
parent
837b7120a8
commit
94f7d7e604
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
Tue Jun 26 12:59:28 2001 Jonathan Blandford <jrb@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_model): fix
|
||||||
|
stupid missing statement
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (gtk_tree_view_set_destroy_count_func): New
|
||||||
|
private function for ATK. It notifies you of how many _visible_
|
||||||
|
children are deleted when a node is deleted. Should be used by
|
||||||
|
atk only.
|
||||||
|
|
||||||
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
Tue Jun 26 12:59:28 2001 Jonathan Blandford <jrb@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_model): fix
|
||||||
|
stupid missing statement
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (gtk_tree_view_set_destroy_count_func): New
|
||||||
|
private function for ATK. It notifies you of how many _visible_
|
||||||
|
children are deleted when a node is deleted. Should be used by
|
||||||
|
atk only.
|
||||||
|
|
||||||
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
Tue Jun 26 12:59:28 2001 Jonathan Blandford <jrb@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_model): fix
|
||||||
|
stupid missing statement
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (gtk_tree_view_set_destroy_count_func): New
|
||||||
|
private function for ATK. It notifies you of how many _visible_
|
||||||
|
children are deleted when a node is deleted. Should be used by
|
||||||
|
atk only.
|
||||||
|
|
||||||
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
Tue Jun 26 12:59:28 2001 Jonathan Blandford <jrb@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_model): fix
|
||||||
|
stupid missing statement
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (gtk_tree_view_set_destroy_count_func): New
|
||||||
|
private function for ATK. It notifies you of how many _visible_
|
||||||
|
children are deleted when a node is deleted. Should be used by
|
||||||
|
atk only.
|
||||||
|
|
||||||
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
Tue Jun 26 12:59:28 2001 Jonathan Blandford <jrb@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_model): fix
|
||||||
|
stupid missing statement
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (gtk_tree_view_set_destroy_count_func): New
|
||||||
|
private function for ATK. It notifies you of how many _visible_
|
||||||
|
children are deleted when a node is deleted. Should be used by
|
||||||
|
atk only.
|
||||||
|
|
||||||
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
Tue Jun 26 12:59:28 2001 Jonathan Blandford <jrb@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_model): fix
|
||||||
|
stupid missing statement
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (gtk_tree_view_set_destroy_count_func): New
|
||||||
|
private function for ATK. It notifies you of how many _visible_
|
||||||
|
children are deleted when a node is deleted. Should be used by
|
||||||
|
atk only.
|
||||||
|
|
||||||
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
Tue Jun 26 12:59:28 2001 Jonathan Blandford <jrb@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_model): fix
|
||||||
|
stupid missing statement
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (gtk_tree_view_set_destroy_count_func): New
|
||||||
|
private function for ATK. It notifies you of how many _visible_
|
||||||
|
children are deleted when a node is deleted. Should be used by
|
||||||
|
atk only.
|
||||||
|
|
||||||
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
Tue Jun 26 11:06:34 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
* gtk/gtkclist.c gtk/gtkentry.c gtk/gtkspinbutton.c:
|
||||||
|
@ -278,7 +278,7 @@ gtk_tree_model_sort_set_model (GtkTreeModelSort *tree_model_sort,
|
|||||||
if (tree_model_sort->root)
|
if (tree_model_sort->root)
|
||||||
{
|
{
|
||||||
gtk_tree_model_sort_free_level (tree_model_sort->root);
|
gtk_tree_model_sort_free_level (tree_model_sort->root);
|
||||||
tree_model_sort->root;
|
tree_model_sort->root = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tree_model_sort->sort_list)
|
if (tree_model_sort->sort_list)
|
||||||
|
@ -135,6 +135,11 @@ struct _GtkTreeViewPrivate
|
|||||||
GList *column_drag_info;
|
GList *column_drag_info;
|
||||||
GtkTreeViewColumnReorder *cur_reorder;
|
GtkTreeViewColumnReorder *cur_reorder;
|
||||||
|
|
||||||
|
/* ATK Hack */
|
||||||
|
GtkTreeDestroyCountFunc destroy_count_func;
|
||||||
|
gpointer destroy_count_data;
|
||||||
|
GtkDestroyNotify destroy_count_destroy;
|
||||||
|
|
||||||
/* Scroll timeout (e.g. during dnd) */
|
/* Scroll timeout (e.g. during dnd) */
|
||||||
guint scroll_timeout;
|
guint scroll_timeout;
|
||||||
|
|
||||||
|
@ -836,7 +836,6 @@ gtk_tree_view_init (GtkTreeView *tree_view)
|
|||||||
gtk_tree_view_set_adjustments (tree_view, NULL, NULL);
|
gtk_tree_view_set_adjustments (tree_view, NULL, NULL);
|
||||||
tree_view->priv->selection = _gtk_tree_selection_new_with_tree_view (tree_view);
|
tree_view->priv->selection = _gtk_tree_selection_new_with_tree_view (tree_view);
|
||||||
_gtk_tree_view_update_size (tree_view);
|
_gtk_tree_view_update_size (tree_view);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -995,6 +994,13 @@ gtk_tree_view_destroy (GtkObject *object)
|
|||||||
tree_view->priv->column_drop_func_data = NULL;
|
tree_view->priv->column_drop_func_data = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tree_view->priv->destroy_count_destroy &&
|
||||||
|
tree_view->priv->destroy_count_data)
|
||||||
|
{
|
||||||
|
(* tree_view->priv->destroy_count_destroy) (tree_view->priv->destroy_count_data);
|
||||||
|
tree_view->priv->destroy_count_data = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
gtk_tree_row_reference_free (tree_view->priv->cursor);
|
gtk_tree_row_reference_free (tree_view->priv->cursor);
|
||||||
tree_view->priv->cursor = NULL;
|
tree_view->priv->cursor = NULL;
|
||||||
|
|
||||||
@ -4414,6 +4420,16 @@ gtk_tree_view_has_child_toggled (GtkTreeModel *model,
|
|||||||
gtk_tree_path_free (path);
|
gtk_tree_path_free (path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
count_children_helper (GtkRBTree *tree,
|
||||||
|
GtkRBNode *node,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
if (node->children)
|
||||||
|
_gtk_rbtree_traverse (node->children, node->children->root, G_POST_ORDER, count_children_helper, data);
|
||||||
|
((gint *)data)++;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_tree_view_deleted (GtkTreeModel *model,
|
gtk_tree_view_deleted (GtkTreeModel *model,
|
||||||
GtkTreePath *path,
|
GtkTreePath *path,
|
||||||
@ -4446,6 +4462,14 @@ gtk_tree_view_deleted (GtkTreeModel *model,
|
|||||||
/* Ensure we don't have a dangling pointer to a dead node */
|
/* Ensure we don't have a dangling pointer to a dead node */
|
||||||
ensure_unprelighted (tree_view);
|
ensure_unprelighted (tree_view);
|
||||||
|
|
||||||
|
if (tree_view->priv->destroy_count_func)
|
||||||
|
{
|
||||||
|
gint child_count = 0;
|
||||||
|
if (node->children)
|
||||||
|
_gtk_rbtree_traverse (node->children, node->children->root, G_POST_ORDER, count_children_helper, &child_count);
|
||||||
|
(* tree_view->priv->destroy_count_func) (tree_view, path, child_count, tree_view->priv->destroy_count_data);
|
||||||
|
}
|
||||||
|
|
||||||
if (tree->root->count == 1)
|
if (tree->root->count == 1)
|
||||||
{
|
{
|
||||||
if (tree_view->priv->tree == tree)
|
if (tree_view->priv->tree == tree)
|
||||||
@ -7148,6 +7172,14 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view,
|
|||||||
/* Ensure we don't have a dangling pointer to a dead node */
|
/* Ensure we don't have a dangling pointer to a dead node */
|
||||||
ensure_unprelighted (tree_view);
|
ensure_unprelighted (tree_view);
|
||||||
|
|
||||||
|
if (tree_view->priv->destroy_count_func)
|
||||||
|
{
|
||||||
|
gint child_count = 0;
|
||||||
|
if (node->children)
|
||||||
|
_gtk_rbtree_traverse (node->children, node->children->root, G_POST_ORDER, count_children_helper, &child_count);
|
||||||
|
(* tree_view->priv->destroy_count_func) (tree_view, path, child_count, tree_view->priv->destroy_count_data);
|
||||||
|
}
|
||||||
|
|
||||||
if (gtk_tree_view_unref_and_check_selection_tree (tree_view, node->children))
|
if (gtk_tree_view_unref_and_check_selection_tree (tree_view, node->children))
|
||||||
g_signal_emit_by_name (G_OBJECT (tree_view->priv->selection), "changed", 0);
|
g_signal_emit_by_name (G_OBJECT (tree_view->priv->selection), "changed", 0);
|
||||||
_gtk_rbtree_remove (node->children);
|
_gtk_rbtree_remove (node->children);
|
||||||
@ -8158,3 +8190,30 @@ gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view,
|
|||||||
return drawable;
|
return drawable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_tree_view_set_destroy_count_func:
|
||||||
|
* @tree_view: A #GtkTreeView
|
||||||
|
* @func: Function to be called when a view row is destroyed, or NULL
|
||||||
|
* @data: User data to be passed to @func, or NULL
|
||||||
|
* @destroy: Destroy notifier for @data, or NULL
|
||||||
|
*
|
||||||
|
* This function should almost never be used. It is meant for private use by
|
||||||
|
* ATK for determining the number of visible rows that are removed when the user
|
||||||
|
* collapses a row, or a row is deleted.
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
gtk_tree_view_set_destroy_count_func (GtkTreeView *tree_view,
|
||||||
|
GtkTreeDestroyCountFunc func,
|
||||||
|
gpointer data,
|
||||||
|
GtkDestroyNotify destroy)
|
||||||
|
{
|
||||||
|
g_return_if_fail (GTK_IS_TREE_VIEW (tree_view));
|
||||||
|
|
||||||
|
if (tree_view->priv->destroy_count_destroy)
|
||||||
|
(* tree_view->priv->destroy_count_destroy) (tree_view->priv->destroy_count_data);
|
||||||
|
|
||||||
|
tree_view->priv->destroy_count_func = func;
|
||||||
|
tree_view->priv->destroy_count_data = data;
|
||||||
|
tree_view->priv->destroy_count_destroy = destroy;
|
||||||
|
}
|
||||||
|
@ -275,6 +275,21 @@ gboolean gtk_tree_view_get_dest_row_at_pos (GtkTreeView
|
|||||||
GdkPixmap *gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view,
|
GdkPixmap *gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view,
|
||||||
GtkTreePath *path);
|
GtkTreePath *path);
|
||||||
|
|
||||||
|
|
||||||
|
/* This function should really never be used. It is just for use by ATK.
|
||||||
|
*/
|
||||||
|
typedef void (* GtkTreeDestroyCountFunc) (GtkTreeView *tree_view,
|
||||||
|
GtkTreePath *path,
|
||||||
|
gint children,
|
||||||
|
gpointer user_data);
|
||||||
|
void gtk_tree_view_set_destroy_count_func (GtkTreeView *tree_view,
|
||||||
|
GtkTreeDestroyCountFunc func,
|
||||||
|
gpointer data,
|
||||||
|
GtkDestroyNotify destroy);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -1446,10 +1446,11 @@ run_automated_tests (void)
|
|||||||
{
|
{
|
||||||
/* Make sure tree store mutations don't crash anything */
|
/* Make sure tree store mutations don't crash anything */
|
||||||
GtkTreeStore *store;
|
GtkTreeStore *store;
|
||||||
|
GtkTreeIter root;
|
||||||
|
|
||||||
store = gtk_tree_store_new_with_types (1, G_TYPE_INT);
|
store = gtk_tree_store_new_with_types (1, G_TYPE_INT);
|
||||||
|
gtk_tree_model_get_iter_root (GTK_TREE_MODEL (store), &root);
|
||||||
treestore_torture_recurse (store, NULL, 0);
|
treestore_torture_recurse (store, &root, 0);
|
||||||
|
|
||||||
g_object_unref (G_OBJECT (store));
|
g_object_unref (G_OBJECT (store));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user