diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-11-11 11:00:27 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2012-11-11 11:15:47 +0100 |
commit | ba5079a489525b3c3e446b1b5fff8f7ca98e97f3 (patch) | |
tree | 37df0d62f5a4bc09785a728b64ba73af70d377af | |
parent | c0ebef92bf0065e9249fdac87443c7cedffc219f (diff) | |
download | subsurface-ba5079a489525b3c3e446b1b5fff8f7ca98e97f3.tar.gz |
Fix selection and trip expansion logic after merging dives
This just makes sure that the merged dive is properly selected, and
that we've saved the trip tree state so that the dive list repaints
nicely and with the newly merged dive selected after the merge.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | dive.c | 1 | ||||
-rw-r--r-- | divelist.c | 3 |
2 files changed, 4 insertions, 0 deletions
@@ -1051,6 +1051,7 @@ struct dive *merge_dives(struct dive *a, struct dive *b, int offset) struct dive *res = alloc_dive(); res->when = a->when; + res->selected = a->selected || b->selected; merge_trip(res, a, b); MERGE_NONZERO(res, a, b, latitude); MERGE_NONZERO(res, a, b, longitude); diff --git a/divelist.c b/divelist.c index 8dab5b4cb..fd55dcd60 100644 --- a/divelist.c +++ b/divelist.c @@ -1938,6 +1938,8 @@ void add_single_dive(int idx, struct dive *dive) { int i; dive_table.nr++; + if (dive->selected) + amount_selected++; for (i = idx; i < dive_table.nr ; i++) { struct dive *tmp = dive_table.dives[i]; dive_table.dives[i] = dive; @@ -2090,6 +2092,7 @@ static void merge_dive_index(int i, struct dive *a) if (!res) return; + remember_tree_state(); add_single_dive(i, res); delete_single_dive(i+1); delete_single_dive(i+1); |