diff options
-rw-r--r-- | info.c | 7 | ||||
-rw-r--r-- | profile.c | 4 |
2 files changed, 9 insertions, 2 deletions
@@ -12,6 +12,13 @@ void update_dive_info(struct dive *dive) struct tm *tm; char buffer[80]; + if (!dive) { + gtk_entry_set_text(GTK_ENTRY(datetime), "no dive"); + gtk_entry_set_text(GTK_ENTRY(depth), ""); + gtk_entry_set_text(GTK_ENTRY(duration), ""); + return; + } + tm = gmtime(&dive->when); snprintf(buffer, sizeof(buffer), "%04d-%02d-%02d " @@ -100,7 +100,7 @@ static void plot(cairo_t *cr, int w, int h, struct dive *dive, int samples, stru static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) { - struct dive *dive = dive_table.dives[selected_dive]; + struct dive *dive = current_dive; cairo_t *cr; int w,h; @@ -111,7 +111,7 @@ static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer cairo_set_source_rgb(cr, 0, 0, 0); cairo_paint(cr); - if (dive->samples) + if (dive && dive->samples) plot(cr, w, h, dive, dive->samples, dive->sample); cairo_destroy(cr); |