[balsa/gtk4: 62/76] autocrypt: Stop using gtk_dialog_run()
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/gtk4: 62/76] autocrypt: Stop using gtk_dialog_run()
- Date: Fri, 9 Oct 2020 02:53:15 +0000 (UTC)
commit 13fa416aef6143e463a288cdaf59acaa72aab84a
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Thu Oct 1 12:02:06 2020 -0400
autocrypt: Stop using gtk_dialog_run()
Use the "response" signal handler to destroy the dialog, and free any
memory.
libbalsa/autocrypt.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
---
diff --git a/libbalsa/autocrypt.c b/libbalsa/autocrypt.c
index 7c85469d2..99df24ad6 100644
--- a/libbalsa/autocrypt.c
+++ b/libbalsa/autocrypt.c
@@ -415,6 +415,16 @@ autocrypt_recommendation(InternetAddressList *recipients, GList **missing_keys,
return result;
}
+static void
+main_dialog_response_cb(GtkDialog *dialog,
+ int response_id,
+ gpointer user_data)
+{
+ GList *keys = user_data;
+
+ g_list_free_full(keys, (GDestroyNotify) g_bytes_unref);
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+}
/* documentation: see header file */
void
@@ -519,9 +529,8 @@ autocrypt_db_dialog_run(const gchar *date_string, GtkWindow *parent)
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_widget_show_all(vbox);
- (void) gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
- g_list_free_full(keys, (GDestroyNotify) g_bytes_unref);
+ g_signal_connect(dialog, "response", G_CALLBACK(main_dialog_response_cb), keys);
+ gtk_widget_show(dialog);
}
@@ -774,7 +783,6 @@ update_last_seen(GMimeAutocryptHeader *autocrypt_header, GError **error)
sqlite3_reset(query[3]);
}
-
static void
row_activated_cb(GtkTreeView *tree_view,
GtkTreePath *path,
@@ -808,9 +816,9 @@ row_activated_cb(GtkTreeView *tree_view,
dialog = libbalsa_key_dialog(window, GTK_BUTTONS_CLOSE, (gpgme_key_t)
keys->data, GPG_SUBKEY_CAP_ALL,
NULL, NULL);
- (void) gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
- g_list_free_full(keys, (GDestroyNotify) gpgme_key_release);
+ g_list_free_full(keys, (GDestroyNotify) gpgme_key_release);
+ g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL);
+ gtk_widget_show(dialog);
}
libbalsa_delete_directory_contents(temp_dir);
g_rmdir(temp_dir);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]