summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2012-08-28 13:16:57 -0700
committerGravatar Linus Torvalds <torvalds@linux-foundation.org>2012-08-28 13:16:57 -0700
commite4955f9be116cd413e8ee3986d737e9e1b95e348 (patch)
tree255e723a9f27f663eb05c611075ac9e573b0a35d
parent490e98dadfc71a318a934f4196821be69c4b6342 (diff)
parentdf1f506b4e874a9c5afad8d31989a2389bbcdf2d (diff)
downloadsubsurface-e4955f9be116cd413e8ee3986d737e9e1b95e348.tar.gz
Merge git://git.tdb.fi/ext/subsurface
Pull a few buglet fixes from Mikko Rasa. Some trivial conflicts due to changes in the dive selection logic, and using the new "for_each_dive()" helper. * git://git.tdb.fi/ext/subsurface: Check if multi-dive editing is actually needed Fix an off-by-one error in buffer allocation
-rw-r--r--gtk-gui.c2
-rw-r--r--info.c18
2 files changed, 18 insertions, 2 deletions
diff --git a/gtk-gui.c b/gtk-gui.c
index bc8e6e000..2a4d77ac9 100644
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -262,7 +262,7 @@ static gboolean ask_save_changes()
label = gtk_label_new (
"You have unsaved changes\nWould you like to save those before exiting the program?");
} else {
- char *label_text = (char*) malloc(sizeof(char) * (92 + strlen(existing_filename)));
+ char *label_text = (char*) malloc(sizeof(char) * (93 + strlen(existing_filename)));
sprintf(label_text,
"You have unsaved changes to file: %s \nWould you like to save those before exiting the program?",
existing_filename);
diff --git a/info.c b/info.c
index cccc6497b..d9379ac68 100644
--- a/info.c
+++ b/info.c
@@ -496,6 +496,7 @@ int edit_multi_dive_info(struct dive *single_dive)
GtkWidget *dialog, *vbox;
struct dive_info info;
struct dive *master;
+ gboolean multi;
dialog = gtk_dialog_new_with_buttons("Dive Info",
GTK_WINDOW(main_window),
@@ -508,7 +509,22 @@ int edit_multi_dive_info(struct dive *single_dive)
master = single_dive;
if (!master)
master = current_dive;
- dive_info_widget(vbox, master, &info, !single_dive);
+
+ /* See if we should use multi dive mode */
+ multi = FALSE;
+ if (!single_dive) {
+ int i;
+ struct dive *dive;
+
+ for_each_dive(i, dive) {
+ if (dive != master && dive->selected) {
+ multi = TRUE;
+ break;
+ }
+ }
+ }
+
+ dive_info_widget(vbox, master, &info, multi);
show_dive_equipment(master, W_IDX_SECONDARY);
save_equipment_data(master);
gtk_widget_show_all(dialog);