X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=gtk-gui.c;h=754a77772e9ac70e7bc8ee2aa72b62f3ca012504;hb=c0adfdc41bc5bea580f85a29dc073678fcb617e8;hp=3efeab0f60ebcf4f2d31c5329e092ffc06770acf;hpb=740e7119cdaa0915280ba3b83c87300ce07560c9;p=ext%2Fsubsurface.git diff --git a/gtk-gui.c b/gtk-gui.c index 3efeab0..754a777 100644 --- a/gtk-gui.c +++ b/gtk-gui.c @@ -141,7 +141,7 @@ static void file_save(GtkWidget *w, gpointer data) filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); save_dives(filename); g_free(filename); - mark_divelist_changed(TRUE); + mark_divelist_changed(FALSE); } gtk_widget_destroy(dialog); } @@ -165,13 +165,19 @@ static void ask_save_changes() gtk_widget_destroy(dialog); } -void on_destroy(GtkWidget* w, gpointer data) +static gboolean on_delete(GtkWidget* w, gpointer data) { /* Make sure to flush any modified dive data */ update_dive(NULL); if (unsaved_changes()) ask_save_changes(); + + return FALSE; /* go ahead, kill the program, we're good now */ +} + +static void on_destroy(GtkWidget* w, gpointer data) +{ gtk_main_quit(); } @@ -417,6 +423,7 @@ void init_ui(int argc, char **argv) error_info_bar = NULL; win = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_icon_from_file(GTK_WINDOW(win), "icon.svg", NULL); + g_signal_connect(G_OBJECT(win), "delete-event", G_CALLBACK (on_delete), NULL); g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(on_destroy), NULL); main_window = win; @@ -609,8 +616,8 @@ void import_dialog(GtkWidget *w, gpointer data) hbox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, TRUE, 3); - devicedata.progress->bar = gtk_progress_bar_new(); - gtk_container_add(GTK_CONTAINER(hbox), devicedata.progress->bar); + devicedata.progress.bar = gtk_progress_bar_new(); + gtk_container_add(GTK_CONTAINER(hbox), devicedata.progress.bar); gtk_widget_show_all(dialog); result = gtk_dialog_run(GTK_DIALOG(dialog)); @@ -644,3 +651,11 @@ void update_progressbar(progressbar_t *progress, double value) { gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress->bar), value); } + + +void set_filename(const char *filename) +{ + if (filename) + existing_filename = strdup(filename); + return; +}