[Gnucash-changes] Look for the window manager deletion signal and
clean up the dialog.
David Hampton
hampton at cvs.gnucash.org
Tue Jul 5 21:12:24 EDT 2005
Log Message:
-----------
Look for the window manager deletion signal and clean up the
dialog.
Tags:
----
gnucash-gnome2-dev
Modified Files:
--------------
gnucash/src/gnome-utils:
dialog-query-list.c
Revision Data
-------------
Index: dialog-query-list.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/dialog-query-list.c,v
retrieving revision 1.3.2.4
retrieving revision 1.3.2.5
diff -Lsrc/gnome-utils/dialog-query-list.c -Lsrc/gnome-utils/dialog-query-list.c -u -r1.3.2.4 -r1.3.2.5
--- src/gnome-utils/dialog-query-list.c
+++ src/gnome-utils/dialog-query-list.c
@@ -120,13 +120,31 @@
gnc_dialog_query_run_callback (dql->buttons, item, dql);
}
+static int
+gnc_dialog_query_list_delete_cb (GtkDialog *dialog, GdkEvent *event, DialogQueryList *dql)
+{
+ g_return_val_if_fail (dql, TRUE);
+
+ gnc_unregister_gui_component (dql->component_id);
+
+ /* XXX: Clear/destroy the param_list? */
+
+ /* destroy the book list */
+ dql_clear_booklist (dql);
+
+ /* Destroy and exit */
+ gtk_widget_destroy(dql->dialog);
+ g_free (dql);
+ return FALSE;
+}
+
static void
close_handler (gpointer data)
{
DialogQueryList * dql = data;
g_return_if_fail (dql);
- gtk_widget_destroy (dql->dialog);
+ gnc_dialog_query_list_delete_cb (GTK_DIALOG(dql->dialog), NULL, dql);
}
static void
@@ -150,23 +168,6 @@
}
}
-static int
-gnc_dialog_query_list_close_cb (GtkDialog *dialog, DialogQueryList *dql)
-{
- g_return_val_if_fail (dql, TRUE);
-
- gnc_unregister_gui_component (dql->component_id);
-
- /* XXX: Clear/destroy the param_list? */
-
- /* destroy the book list */
- dql_clear_booklist (dql);
-
- /* Destroy and exit */
- g_free (dql);
- return FALSE;
-}
-
static void
gnc_dialog_query_list_close (GtkButton *button, DialogQueryList *dql)
{
@@ -212,8 +213,8 @@
G_CALLBACK (gnc_dialog_query_list_close), dql);
/* connect to the cleanup */
- g_signal_connect (G_OBJECT (dql->dialog), "close",
- G_CALLBACK (gnc_dialog_query_list_close_cb), dql);
+ g_signal_connect (G_OBJECT (dql->dialog), "delete_event",
+ G_CALLBACK (gnc_dialog_query_list_delete_cb), dql);
/* register ourselves */
More information about the gnucash-changes
mailing list