diff --git a/dive.h b/dive.h index ca90a9ae4..85d4b9fa4 100644 --- a/dive.h +++ b/dive.h @@ -463,6 +463,7 @@ const char *monthname(int mon); extern const char *star_strings[]; extern const char *default_filename; +extern char *existing_filename; extern const char *subsurface_default_filename(void); #define AIR_PERMILLE 209 diff --git a/gtk-gui.c b/gtk-gui.c index d2e2817d8..e5bdac9f2 100644 --- a/gtk-gui.c +++ b/gtk-gui.c @@ -25,7 +25,7 @@ GtkWidget *vpane, *hpane; GtkWidget *notebook; int error_count; - +char *existing_filename; const char *divelist_font; const char *default_filename; @@ -81,7 +81,6 @@ void repaint_dive(void) gtk_widget_queue_draw(dive_profile); } -static char *existing_filename; static gboolean need_icon = TRUE; static void on_info_bar_response(GtkWidget *widget, gint response, diff --git a/info.c b/info.c index 34ddfa923..a4d4d4179 100644 --- a/info.c +++ b/info.c @@ -112,9 +112,15 @@ void show_dive_info(struct dive *dive) { const char *text; char buffer[80]; + char title[80]; if (!dive) { - gtk_window_set_title(GTK_WINDOW(main_window), "Subsurface"); + if (existing_filename) { + snprintf(title, 80, "Subsurface: %s", g_path_get_basename(existing_filename)); + gtk_window_set_title(GTK_WINDOW(main_window), title); + } else { + gtk_window_set_title(GTK_WINDOW(main_window), "Subsurface"); + } SET_TEXT_VALUE(divemaster); SET_TEXT_VALUE(buddy); SET_TEXT_VALUE(location); @@ -136,8 +142,14 @@ void show_dive_info(struct dive *dive) text = buffer; if (!dive->number) text += 10; /* Skip the "Dive #0 - " part */ - gtk_window_set_title(GTK_WINDOW(main_window), text); + /* put it all together */ + if (existing_filename) { + snprintf(title, 80, "%s: %s", g_path_get_basename(existing_filename), text); + gtk_window_set_title(GTK_WINDOW(main_window), title); + } else { + gtk_window_set_title(GTK_WINDOW(main_window), text); + } SET_TEXT_VALUE(divemaster); SET_TEXT_VALUE(buddy); SET_TEXT_VALUE(location);