|
Michael Catanzaro |
3f007ec |
From 4a65867e3811ce7aa26a72e971b7ad585d5d2637 Mon Sep 17 00:00:00 2001
|
|
Michael Catanzaro |
3f007ec |
From: Michael Catanzaro <mcatanzaro@igalia.com>
|
|
Michael Catanzaro |
3f007ec |
Date: Wed, 3 Jul 2019 16:14:26 -0500
|
|
Michael Catanzaro |
3f007ec |
Subject: [PATCH] GcalWindow should properly disconnect from its GcalManager
|
|
Michael Catanzaro |
3f007ec |
|
|
Michael Catanzaro |
3f007ec |
Fixes #392 for the gnome-3-32 branch
|
|
Michael Catanzaro |
3f007ec |
---
|
|
Michael Catanzaro |
3f007ec |
src/gcal-window.c | 15 ++++++++++-----
|
|
Michael Catanzaro |
3f007ec |
1 file changed, 10 insertions(+), 5 deletions(-)
|
|
Michael Catanzaro |
3f007ec |
|
|
Michael Catanzaro |
3f007ec |
diff --git a/src/gcal-window.c b/src/gcal-window.c
|
|
Michael Catanzaro |
3f007ec |
index 46ee5301..ae96b1e2 100644
|
|
Michael Catanzaro |
3f007ec |
--- a/src/gcal-window.c
|
|
Michael Catanzaro |
3f007ec |
+++ b/src/gcal-window.c
|
|
Michael Catanzaro |
3f007ec |
@@ -1268,8 +1268,13 @@ gcal_window_set_property (GObject *object,
|
|
Michael Catanzaro |
3f007ec |
break;
|
|
Michael Catanzaro |
3f007ec |
|
|
Michael Catanzaro |
3f007ec |
case PROP_MANAGER:
|
|
Michael Catanzaro |
3f007ec |
- if (g_set_object (&self->manager, g_value_get_object (value)))
|
|
Michael Catanzaro |
3f007ec |
+ if (self->manager != g_value_get_object (value))
|
|
Michael Catanzaro |
3f007ec |
{
|
|
Michael Catanzaro |
3f007ec |
+ if (self->manager != NULL)
|
|
Michael Catanzaro |
3f007ec |
+ g_signal_handlers_disconnect_by_data (self->manager, object);
|
|
Michael Catanzaro |
3f007ec |
+
|
|
Michael Catanzaro |
3f007ec |
+ g_set_object (&self->manager, g_value_get_object (value));
|
|
Michael Catanzaro |
3f007ec |
+
|
|
Michael Catanzaro |
3f007ec |
g_settings_bind (gcal_manager_get_settings (self->manager),
|
|
Michael Catanzaro |
3f007ec |
"active-view",
|
|
Michael Catanzaro |
3f007ec |
self,
|
|
Michael Catanzaro |
3f007ec |
@@ -1288,10 +1293,10 @@ gcal_window_set_property (GObject *object,
|
|
Michael Catanzaro |
3f007ec |
g_list_free (sources);
|
|
Michael Catanzaro |
3f007ec |
}
|
|
Michael Catanzaro |
3f007ec |
|
|
Michael Catanzaro |
3f007ec |
- g_signal_connect (self->manager, "source-added", G_CALLBACK (add_source), object);
|
|
Michael Catanzaro |
3f007ec |
- g_signal_connect (self->manager, "source-removed", G_CALLBACK (remove_source), object);
|
|
Michael Catanzaro |
3f007ec |
- g_signal_connect_swapped (self->manager, "source-enabled", G_CALLBACK (source_enabled), object);
|
|
Michael Catanzaro |
3f007ec |
- g_signal_connect_swapped (self->manager, "source-changed", G_CALLBACK (source_changed), object);
|
|
Michael Catanzaro |
3f007ec |
+ g_signal_connect_object (self->manager, "source-added", G_CALLBACK (add_source), object, 0);
|
|
Michael Catanzaro |
3f007ec |
+ g_signal_connect_object (self->manager, "source-removed", G_CALLBACK (remove_source), object, 0);
|
|
Michael Catanzaro |
3f007ec |
+ g_signal_connect_object (self->manager, "source-enabled", G_CALLBACK (source_enabled), object, G_CONNECT_SWAPPED);
|
|
Michael Catanzaro |
3f007ec |
+ g_signal_connect_object (self->manager, "source-changed", G_CALLBACK (source_changed), object, G_CONNECT_SWAPPED);
|
|
Michael Catanzaro |
3f007ec |
|
|
Michael Catanzaro |
3f007ec |
gcal_search_popover_connect (GCAL_SEARCH_POPOVER (self->search_popover), self->manager);
|
|
Michael Catanzaro |
3f007ec |
|
|
Michael Catanzaro |
3f007ec |
--
|
|
Michael Catanzaro |
3f007ec |
2.21.0
|
|
Michael Catanzaro |
3f007ec |
|