From dd58a64a3e400c15e01371dd09ccba35a83741ed Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Sun, 11 Jul 1999 12:08:01 +0000 Subject: [PATCH] Fixed the deletion of paths that I broke with my last change. --Sven --- ChangeLog | 5 +++++ app/gui/paths-dialog.c | 15 +++++++++------ app/paths_dialog.c | 15 +++++++++------ 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index e3fda895ba..154457a9db 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Jul 11 14:05:06 MEST 1999 Sven Neumann + + * app/paths_dialog.c: my last change did break path deletion - this + should be fixed now + Sat Jul 10 16:05:58 1999 ape@gandalf.spacetec.no (Asbjorn Pettersen) * plug-ins/sel2path/math.c: diff --git a/app/gui/paths-dialog.c b/app/gui/paths-dialog.c index b320fd1e66..074b8facdf 100644 --- a/app/gui/paths-dialog.c +++ b/app/gui/paths-dialog.c @@ -1018,9 +1018,9 @@ paths_unselect_row (GtkWidget *widget, if(!pwidget) return; - bzp = (PATHP)g_slist_nth_data(paths_dialog->current_path_list->bz_paths,row); + bzp = pwidget->bzp; - g_return_if_fail(bzp != NULL); + g_return_if_fail (bzp != NULL); if (column && bzp->locked) { @@ -1380,6 +1380,13 @@ paths_dialog_delete_path_callback (GtkWidget * widget, gpointer udata) new_sz = (g_slist_length(plp->bz_paths) > 0); path_free(bzp,NULL); + /* Remove from the clist ... */ + gtk_signal_handler_block_by_data (GTK_OBJECT (paths_dialog->paths_list), + paths_dialog); + gtk_clist_remove (GTK_CLIST (paths_dialog->paths_list), row); + gtk_signal_handler_unblock_by_data (GTK_OBJECT (paths_dialog->paths_list), + paths_dialog); + /* If now empty free everything up */ if(!plp->bz_paths || g_slist_length(plp->bz_paths) == 0) { @@ -1390,10 +1397,6 @@ paths_dialog_delete_path_callback (GtkWidget * widget, gpointer udata) paths_dialog->current_path_list = NULL; } - /* Do this last since it might cause a new row to become selected */ - /* Remove from the clist ... */ - gtk_clist_remove(GTK_CLIST(paths_dialog->paths_list),row); - paths_ops_button_set_sensitive(DUP_PATH_BUTTON,new_sz); paths_ops_button_set_sensitive(DEL_PATH_BUTTON,new_sz); paths_ops_button_set_sensitive(STROKE_PATH_BUTTON,new_sz); diff --git a/app/paths_dialog.c b/app/paths_dialog.c index b320fd1e66..074b8facdf 100644 --- a/app/paths_dialog.c +++ b/app/paths_dialog.c @@ -1018,9 +1018,9 @@ paths_unselect_row (GtkWidget *widget, if(!pwidget) return; - bzp = (PATHP)g_slist_nth_data(paths_dialog->current_path_list->bz_paths,row); + bzp = pwidget->bzp; - g_return_if_fail(bzp != NULL); + g_return_if_fail (bzp != NULL); if (column && bzp->locked) { @@ -1380,6 +1380,13 @@ paths_dialog_delete_path_callback (GtkWidget * widget, gpointer udata) new_sz = (g_slist_length(plp->bz_paths) > 0); path_free(bzp,NULL); + /* Remove from the clist ... */ + gtk_signal_handler_block_by_data (GTK_OBJECT (paths_dialog->paths_list), + paths_dialog); + gtk_clist_remove (GTK_CLIST (paths_dialog->paths_list), row); + gtk_signal_handler_unblock_by_data (GTK_OBJECT (paths_dialog->paths_list), + paths_dialog); + /* If now empty free everything up */ if(!plp->bz_paths || g_slist_length(plp->bz_paths) == 0) { @@ -1390,10 +1397,6 @@ paths_dialog_delete_path_callback (GtkWidget * widget, gpointer udata) paths_dialog->current_path_list = NULL; } - /* Do this last since it might cause a new row to become selected */ - /* Remove from the clist ... */ - gtk_clist_remove(GTK_CLIST(paths_dialog->paths_list),row); - paths_ops_button_set_sensitive(DUP_PATH_BUTTON,new_sz); paths_ops_button_set_sensitive(DEL_PATH_BUTTON,new_sz); paths_ops_button_set_sensitive(STROKE_PATH_BUTTON,new_sz);