Index: ChangeLog =================================================================== RCS file: /cvs/gnome/gnumeric/ChangeLog,v retrieving revision 1.2431 diff -u -3 -p -r1.2431 ChangeLog --- ChangeLog 25 Sep 2002 14:10:58 -0000 1.2431 +++ ChangeLog 25 Sep 2002 22:02:00 -0000 @@ -1,3 +1,9 @@ +2002-09-26 Lutz Müller + + * src/dialogs/dialog-sheet-order.c: On ok, we don't care any longer + about changes in the sheet order, therefore stop listen to this + signal. + 2002-09-25 Jody Goldberg * src/parser.y : begin support for intersection and sets, still needs Index: src/dialogs/dialog-sheet-order.c =================================================================== RCS file: /cvs/gnome/gnumeric/src/dialogs/dialog-sheet-order.c,v retrieving revision 1.38 diff -u -3 -p -r1.38 dialog-sheet-order.c --- src/dialogs/dialog-sheet-order.c 25 Sep 2002 14:11:09 -0000 1.38 +++ src/dialogs/dialog-sheet-order.c 25 Sep 2002 22:02:01 -0000 @@ -535,6 +535,7 @@ cb_ok_clicked (GtkWidget *ignore, SheetM gboolean is_deleted, is_locked; GdkColor *back, *fore; gboolean fore_changed, back_changed, lock_changed; + Workbook *wb = wb_control_workbook (WORKBOOK_CONTROL (state->wbcg)); while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (state->model), &this_iter, NULL, n)) { @@ -659,6 +660,10 @@ cb_ok_clicked (GtkWidget *ignore, SheetM old_order = NULL; } + /* Stop listening to changes in the sheet order. */ + g_signal_handler_block (G_OBJECT (wb), + state->sheet_order_changed_listener); + if ((new_order == NULL && changed_names == NULL && color_changed == NULL && protection_changed == NULL) || !cmd_reorganize_sheets (WORKBOOK_CONTROL (state->wbcg), @@ -667,7 +672,13 @@ cb_ok_clicked (GtkWidget *ignore, SheetM color_changed, new_colors_back, new_colors_fore, protection_changed, new_locks)) { gtk_widget_destroy (GTK_WIDGET (state->dialog)); - } + } else { + + /* Restart listening to changes in the sheet order. */ + g_signal_handler_unblock (G_OBJECT (wb), + state->sheet_order_changed_listener); + } + if (deleted_sheets) { g_slist_foreach (deleted_sheets, cb_delete_sheets, NULL); g_slist_free (deleted_sheets);