r16161 - in /desktop/unstable/gnome-panel/debian: changelog patches/06_calendar_crashes.patch patches/series
joss at users.alioth.debian.org
joss at users.alioth.debian.org
Tue Jun 3 18:41:27 UTC 2008
Author: joss
Date: Tue Jun 3 18:41:26 2008
New Revision: 16161
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=16161
Log:
06_calendar_crashes.patch: stolen from upstream SVN. Fix several
crashes in the calendar applet. Closes: #484323.
Added:
desktop/unstable/gnome-panel/debian/patches/06_calendar_crashes.patch
Modified:
desktop/unstable/gnome-panel/debian/changelog
desktop/unstable/gnome-panel/debian/patches/series
Modified: desktop/unstable/gnome-panel/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-panel/debian/changelog?rev=16161&op=diff
==============================================================================
--- desktop/unstable/gnome-panel/debian/changelog (original)
+++ desktop/unstable/gnome-panel/debian/changelog Tue Jun 3 18:41:26 2008
@@ -1,3 +1,10 @@
+gnome-panel (2.20.3-5) unstable; urgency=low
+
+ * 06_calendar_crashes.patch: stolen from upstream SVN. Fix several
+ crashes in the calendar applet. Closes: #484323.
+
+ -- Josselin Mouette <joss at debian.org> Tue, 03 Jun 2008 20:41:36 +0200
+
gnome-panel (2.20.3-4) unstable; urgency=low
* 04_logout-center.patch: stolen from upstream SVN. Center and focus
Added: desktop/unstable/gnome-panel/debian/patches/06_calendar_crashes.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-panel/debian/patches/06_calendar_crashes.patch?rev=16161&op=file
==============================================================================
--- desktop/unstable/gnome-panel/debian/patches/06_calendar_crashes.patch (added)
+++ desktop/unstable/gnome-panel/debian/patches/06_calendar_crashes.patch Tue Jun 3 18:41:26 2008
@@ -1,0 +1,81 @@
+Upstream r10989, r10995, r10996.
+Fixes GNOME #378854, #488819.
+Debian #484323.
+
+Index: gnome-panel-2.20.3/applets/clock/calendar-sources.c
+===================================================================
+--- gnome-panel-2.20.3.orig/applets/clock/calendar-sources.c 2008-06-03 20:39:28.929686105 +0200
++++ gnome-panel-2.20.3/applets/clock/calendar-sources.c 2008-06-03 20:39:36.485691687 +0200
+@@ -87,6 +87,10 @@ static void calendar_sources_class_init
+ static void calendar_sources_init (CalendarSources *sources);
+ static void calendar_sources_finalize (GObject *object);
+
++static void backend_died_cb (ECal *client, CalendarSourceData *source_data);
++static void calendar_sources_esource_list_changed (ESourceList *source_list,
++ CalendarSourceData *source_data);
++
+ enum
+ {
+ APPOINTMENT_SOURCES_CHANGED,
+@@ -206,11 +210,22 @@ calendar_sources_finalize_source_data (C
+ }
+
+ for (l = source_data->clients; l; l = l->next)
+- g_object_unref (l->data);
++ {
++ g_signal_handlers_disconnect_by_func (G_OBJECT (l->data),
++ G_CALLBACK (backend_died_cb),
++ source_data);
++ g_object_unref (l->data);
++ }
++ g_slist_free (source_data->clients);
+ source_data->clients = NULL;
+
+ if (source_data->esource_list)
+- g_object_unref (source_data->esource_list);
++ {
++ g_signal_handlers_disconnect_by_func (source_data->esource_list,
++ G_CALLBACK (calendar_sources_esource_list_changed),
++ source_data);
++ g_object_unref (source_data->esource_list);
++ }
+ source_data->esource_list = NULL;
+
+ for (l = source_data->selected_sources; l; l = l->next)
+@@ -483,9 +498,6 @@ calendar_sources_load_esource_list (Cale
+ if (is_source_selected (esource, source_data->selected_sources) &&
+ (client = load_esource (esource, source_data->source_type, source_data->clients)))
+ {
+- g_signal_connect (G_OBJECT (client), "backend_died",
+- G_CALLBACK (backend_died_cb), source_data);
+-
+ loaded_clients = g_slist_prepend (loaded_clients, client);
+ }
+ }
+@@ -497,10 +509,25 @@ calendar_sources_load_esource_list (Cale
+ emit_signal = TRUE;
+
+ for (l = source_data->clients; l; l = l->next)
+- g_object_unref (l->data);
++ {
++ g_signal_handlers_disconnect_by_func (G_OBJECT (l->data),
++ G_CALLBACK (backend_died_cb),
++ source_data);
++
++ g_object_unref (l->data);
++ }
+ g_slist_free (source_data->clients);
+ source_data->clients = g_slist_reverse (loaded_clients);
+
++ /* connect to backend_died after we disconnected the previous signal
++ * handlers. If we do it before, we'll lose some handlers (for clients that
++ * were already there before) */
++ for (l = source_data->clients; l; l = l->next)
++ {
++ g_signal_connect (G_OBJECT (l->data), "backend_died",
++ G_CALLBACK (backend_died_cb), source_data);
++ }
++
+ if (emit_signal)
+ {
+ dprintf ("Emitting %s-sources-changed signal\n",
Modified: desktop/unstable/gnome-panel/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-panel/debian/patches/series?rev=16161&op=diff
==============================================================================
--- desktop/unstable/gnome-panel/debian/patches/series (original)
+++ desktop/unstable/gnome-panel/debian/patches/series Tue Jun 3 18:41:26 2008
@@ -3,6 +3,7 @@
03_gnome-panel-logout.patch
04_logout-center.patch
05_missing_includes.patch
+06_calendar_crashes.patch
60_caldav-clock-appointments.patch
70_relibtoolize.patch
99_ltmain_as-needed.patch
More information about the pkg-gnome-commits
mailing list