diff options
Diffstat (limited to 'divelist-gtk.c')
-rw-r--r-- | divelist-gtk.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/divelist-gtk.c b/divelist-gtk.c index 3f96193c5..1a47feb51 100644 --- a/divelist-gtk.c +++ b/divelist-gtk.c @@ -56,6 +56,7 @@ static struct DiveList dive_list; #define LISTSTORE(_dl) GTK_TREE_STORE((_dl).listmodel) short autogroup = FALSE; +static gboolean ignore_selection_changes = FALSE; static gboolean in_set_cursor = FALSE; static gboolean set_selected(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); @@ -780,8 +781,10 @@ static void restore_tree_state(void); void dive_list_update_dives(void) { dive_table.preexisting = dive_table.nr; + ignore_selection_changes = TRUE; gtk_tree_store_clear(TREESTORE(dive_list)); gtk_tree_store_clear(LISTSTORE(dive_list)); + ignore_selection_changes = FALSE; fill_dive_list(); restore_tree_state(); repaint_dive(); @@ -2056,6 +2059,9 @@ static void selection_cb(GtkTreeSelection *selection, GtkTreeModel *model) int i, fixup; struct dive *dive; + if (ignore_selection_changes) + return; + gtk_tree_selection_selected_foreach(selection, entry_selected, model); /* |