From: John Melton - G0ORX/N6LYT Date: Tue, 12 Jul 2016 16:16:51 +0000 (+0000) Subject: fixed seg fault when using touch screen buttons and close not setting pointer to... X-Git-Url: https://git.rkrishnan.org/%5B/specifications?a=commitdiff_plain;h=0024858e7fcb31e8896fb97e5fbcafc7d9c55f18;p=pihpsdr.git fixed seg fault when using touch screen buttons and close not setting pointer to null. --- diff --git a/pihpsdr b/pihpsdr index a251ed9..85d98ea 100755 Binary files a/pihpsdr and b/pihpsdr differ diff --git a/release/pihpsdr.tar b/release/pihpsdr.tar index df79fb2..afff376 100644 Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ diff --git a/release/pihpsdr/pihpsdr b/release/pihpsdr/pihpsdr index a251ed9..85d98ea 100755 Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ diff --git a/toolbar.c b/toolbar.c index 848c06a..d377ae3 100644 --- a/toolbar.c +++ b/toolbar.c @@ -101,6 +101,11 @@ void update_toolbar_labels() { } } +static void close_cb(GtkWidget *widget, gpointer data) { + gtk_widget_destroy(last_dialog); + last_dialog=NULL; +} + static void band_select_cb(GtkWidget *widget, gpointer data) { GtkWidget *label; int b=(int)data; @@ -130,7 +135,7 @@ static void band_select_cb(GtkWidget *widget, gpointer data) { setFrequency(entry->frequencyA); } - void band_cb(GtkWidget *widget, gpointer data) { +void band_cb(GtkWidget *widget, gpointer data) { int show=1; if(last_dialog!=NULL) { if(strcmp(gtk_window_get_title(GTK_WINDOW(last_dialog)),"Band")==0) { @@ -172,13 +177,15 @@ static void band_select_cb(GtkWidget *widget, gpointer data) { GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); //gtk_widget_override_font(close_button, pango_font_description_from_string("Arial 20")); - gtk_widget_show_all(dialog); + g_signal_connect(close_button,"clicked",G_CALLBACK(close_cb),(gpointer *)NULL); + gtk_widget_show_all(dialog); +/* g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); - +*/ last_dialog=dialog; int result=gtk_dialog_run(GTK_DIALOG(dialog)); } @@ -255,13 +262,15 @@ void bandstack_cb(GtkWidget *widget, gpointer data) { GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); //gtk_widget_override_font(close_button, pango_font_description_from_string("Arial 20")); + g_signal_connect(close_button,"clicked",G_CALLBACK(close_cb),(gpointer *)NULL); gtk_widget_show_all(dialog); +/* g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); - +*/ last_dialog=dialog; int result=gtk_dialog_run(GTK_DIALOG(dialog)); @@ -325,13 +334,15 @@ void mode_cb(GtkWidget *widget, gpointer data) { gtk_container_add(GTK_CONTAINER(content),grid); GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); //gtk_widget_override_font(close_button, pango_font_description_from_string("Arial 20")); + g_signal_connect(close_button,"clicked",G_CALLBACK(close_cb),(gpointer *)NULL); gtk_widget_show_all(dialog); +/* g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); - +*/ last_dialog=dialog; int result=gtk_dialog_run(GTK_DIALOG(dialog)); @@ -389,13 +400,15 @@ void filter_cb(GtkWidget *widget, gpointer data) { gtk_container_add(GTK_CONTAINER(content),grid); GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); //gtk_widget_override_font(close_button, pango_font_description_from_string("Arial 20")); + g_signal_connect(close_button,"clicked",G_CALLBACK(close_cb),(gpointer *)NULL); gtk_widget_show_all(dialog); +/* g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); - +*/ last_dialog=dialog; int result=gtk_dialog_run(GTK_DIALOG(dialog)); @@ -543,13 +556,14 @@ void agc_cb(GtkWidget *widget, gpointer data) { GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); //gtk_widget_override_font(close_button, pango_font_description_from_string("Arial 16")); + g_signal_connect(close_button,"clicked",G_CALLBACK(close_cb),(gpointer *)NULL); gtk_widget_show_all(dialog); - +/* g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); - +*/ last_dialog=dialog; int result=gtk_dialog_run(GTK_DIALOG(dialog)); } @@ -628,13 +642,14 @@ void noise_cb(GtkWidget *widget, gpointer data) { GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); //gtk_widget_override_font(close_button, pango_font_description_from_string("Arial 16")); + g_signal_connect(close_button,"clicked",G_CALLBACK(close_cb),(gpointer *)NULL); gtk_widget_show_all(dialog); - +/* g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); - +*/ last_dialog=dialog; int result=gtk_dialog_run(GTK_DIALOG(dialog));