From e170420969a8b5b6e39a53dcff37d012fcfa89df Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Mon, 29 Oct 2001 22:21:57 +0000 Subject: Hide the Help button here since there's nothing connected to it. 2001-10-29 Christopher James Lahey * e-table-config.c (setup_gui): Hide the Help button here since there's nothing connected to it. * e-tree-sorted.c (ets_sort_idle): Don't nest ets_sort_idle calls. Fixes Ximian bug #13929. svn path=/trunk/; revision=14368 --- widgets/table/e-table-config.c | 2 ++ widgets/table/e-tree-sorted.c | 21 +++++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/widgets/table/e-table-config.c b/widgets/table/e-table-config.c index b783eaa396..36f3faf9d3 100644 --- a/widgets/table/e-table-config.c +++ b/widgets/table/e-table-config.c @@ -725,6 +725,8 @@ setup_gui (ETableConfig *config) config->dialog_toplevel = glade_xml_get_widget ( gui, "e-table-config"); + gtk_widget_hide (GNOME_PROPERTY_BOX(config->dialog_toplevel)->help_button); + gtk_notebook_set_show_tabs ( GTK_NOTEBOOK (GNOME_PROPERTY_BOX ( config->dialog_toplevel)->notebook), diff --git a/widgets/table/e-tree-sorted.c b/widgets/table/e-tree-sorted.c index f86bca0a06..6300a36e7c 100644 --- a/widgets/table/e-tree-sorted.c +++ b/widgets/table/e-tree-sorted.c @@ -103,6 +103,9 @@ struct ETreeSortedPriv { int sort_idle_id; int insert_idle_id; int insert_count; + + guint in_resort_idle : 1; + guint nested_resort_idle : 1; }; enum { @@ -127,10 +130,19 @@ static gboolean ets_sort_idle(gpointer user_data) { ETreeSorted *ets = user_data; - ets->priv->sort_idle_id = 0; + if (ets->priv->in_resort_idle) { + ets->priv->nested_resort_idle = TRUE; + return FALSE; + } + ets->priv->in_resort_idle = TRUE; if (ets->priv->root) { - resort_node (ets, ets->priv->root, FALSE, FALSE, TRUE); + do { + ets->priv->nested_resort_idle = FALSE; + resort_node (ets, ets->priv->root, FALSE, FALSE, TRUE); + } while (ets->priv->nested_resort_idle); } + ets->priv->in_resort_idle = FALSE; + ets->priv->sort_idle_id = 0; return FALSE; } @@ -561,6 +573,8 @@ schedule_resort (ETreeSorted *ets, ETreeSortedPath *path, gboolean needs_regen, mark_path_needs_resort(ets, path, needs_regen, resort_all_children); if (ets->priv->sort_idle_id == 0) { ets->priv->sort_idle_id = g_idle_add_full(50, (GSourceFunc) ets_sort_idle, ets, NULL); + } else if (ets->priv->in_resort_idle) { + ets->priv->nested_resort_idle = TRUE; } } @@ -1232,6 +1246,9 @@ e_tree_sorted_init (GtkObject *object) priv->sort_idle_id = 0; priv->insert_idle_id = 0; priv->insert_count = 0; + + priv->in_resort_idle = 0; + priv->nested_resort_idle = 0; } E_MAKE_TYPE(e_tree_sorted, "ETreeSorted", ETreeSorted, e_tree_sorted_class_init, e_tree_sorted_init, PARENT_TYPE) -- cgit v1.2.3