[balsa] main-window: Disconnect from a signal



commit c2a5e88a517be6e91a44984a2f582e0beb727e10
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Mon Jan 6 15:45:00 2020 -0500

    main-window: Disconnect from a signal
    
    Disconnect from a network monitor signal,
    to avoid scheduling an idle callback after some objects have
    been finalized.
    
    * src/main-window.c (balsa_window_destroy):

 ChangeLog         | 9 +++++++++
 src/main-window.c | 6 ++++++
 2 files changed, 15 insertions(+)
---
diff --git a/ChangeLog b/ChangeLog
index 2d61ccd21..f4bc4f10b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2020-01-06  Peter Bloomfield  <pbloomfield bellsouth net>
+
+       main-window: Disconnect from a network monitor signal
+
+       to avoid scheduling an idle callback after some objects have
+       been finalized.
+
+       * src/main-window.c (balsa_window_destroy):
+
 2020-01-02  Peter Bloomfield  <pbloomfield bellsouth net>
 
        balsa-index: Store idle handler ids
diff --git a/src/main-window.c b/src/main-window.c
index 2a249d0e4..46239d85a 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -3171,6 +3171,7 @@ balsa_window_destroy(GObject * object)
 {
     BalsaWindow *window = BALSA_WINDOW(object);
     BalsaWindowPrivate *priv = balsa_window_get_instance_private(window);
+    GNetworkMonitor *monitor;
 
     bw_idle_remove(window);
     /* The preview window seems to get finalized without notification;
@@ -3182,6 +3183,11 @@ balsa_window_destroy(GObject * object)
         priv->network_changed_source_id = 0;
     }
 
+    monitor = g_network_monitor_get_default();
+    g_signal_handlers_disconnect_by_func(monitor,
+                                         G_CALLBACK(bw_network_changed_cb),
+                                         NULL);
+
     balsa_app.in_destruction = TRUE;
     G_OBJECT_CLASS(balsa_window_parent_class)->dispose(object);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]