diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2012-11-21 13:53:36 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2012-11-21 13:53:36 -0800 |
commit | d872a5c8aab858fa7a06b6f91f2dda57a43a6306 (patch) | |
tree | 44e2953179ee03e9c0340c5eadf69872bfd23b02 /divelist.c | |
parent | a8d413551e3b6c7c2ab9d092b67e0976550e2115 (diff) | |
download | subsurface-d872a5c8aab858fa7a06b6f91f2dda57a43a6306.tar.gz |
Make sure there are no invisible selected dives after import / download
Prior to this commit, gtk often decided to collapse the trip with the
selected dive after the user imported or downloaded additional dives.
Since Subsurface tracks dives as being selected even after gtk collapses a
trip (which clears all selection state as far as gtk is concerned) this
could lead to the strange situation that the user could click on a new
dive to select it without unselecting the already selected dive - and
suddenly edit or delete did things that were entirely unwanted.
With this change we explicitly save and then restore the tree state around
import and download operations. This ensures that the same dive(s) stay
selected and trips stay expanded and therefore avoids the issues described
here.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'divelist.c')
-rw-r--r-- | divelist.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/divelist.c b/divelist.c index 59db7c208..37efed67a 100644 --- a/divelist.c +++ b/divelist.c @@ -1948,7 +1948,7 @@ void add_single_dive(int idx, struct dive *dive) } /* remember expanded state */ -static void remember_tree_state() +void remember_tree_state() { GtkTreeIter iter; if (!gtk_tree_model_get_iter_first(TREEMODEL(dive_list), &iter)) @@ -1992,7 +1992,7 @@ static gboolean restore_node_state(GtkTreeModel *model, GtkTreePath *path, GtkTr } /* restore expanded and selected state */ -static void restore_tree_state() +void restore_tree_state() { gtk_tree_model_foreach(MODEL(dive_list), restore_node_state, NULL); } |