mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Fix selection handling for invalid dives
This is the downside of having to track our own selection state. We now have a class of dives that potentially isn't known to Gtk as we aren't adding them to the TreeView. So we need to make sure that their selection state is consistent by deselecting them (either when they are marked as invalid OR when we change preferences to no longer show invalid dives). And because Gtk sends out another set of selection events when clearing the TreeView (not sure why), we also need to make sure that their selection state isn't reset to selected by mistake when the divelist is recreated. A bit of a pain, but it seems to work now and be consistent. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
a9055049f1
commit
0a9ad49f0a
4 changed files with 32 additions and 3 deletions
14
gtk-gui.c
14
gtk-gui.c
|
@ -1027,9 +1027,23 @@ static void preferences_dialog(GtkWidget *w, gpointer data)
|
|||
result = gtk_dialog_run(GTK_DIALOG(dialog));
|
||||
if (result == GTK_RESPONSE_ACCEPT) {
|
||||
const char *po2_threshold_text, *pn2_threshold_text, *phe_threshold_text, *mod_text, *gflow_text, *gfhigh_text;
|
||||
int j;
|
||||
struct dive *d;
|
||||
|
||||
/* Make sure to flush any modified old dive data with old units */
|
||||
update_dive(NULL);
|
||||
|
||||
/* if we turned off displaying invalid dives. de-select all
|
||||
* invalid dives that were selected before hiding them */
|
||||
if (oldprefs.display_invalid_dives && !prefs.display_invalid_dives) {
|
||||
for_each_dive(j, d)
|
||||
if (d->selected && d->dive_tags && DTAG_INVALID) {
|
||||
d->selected = 0;
|
||||
amount_selected--;
|
||||
}
|
||||
if (amount_selected == 0)
|
||||
selected_dive = -1;
|
||||
}
|
||||
prefs.divelist_font = strdup(gtk_font_button_get_font_name(GTK_FONT_BUTTON(font)));
|
||||
set_divelist_font(prefs.divelist_font);
|
||||
po2_threshold_text = gtk_entry_get_text(GTK_ENTRY(entry_po2));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue