aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-client/cal-client.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@ximian.com>2001-01-19 01:23:20 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2001-01-19 01:23:20 +0800
commit1ebee5b96f0861a48a1de9b8230540d740dd65cf (patch)
treed765eaa62e5560f4fc096eabc56c430d9a57f6c3 /calendar/cal-client/cal-client.c
parent12347daf568506538abf8f63c54c2699e8e8d383 (diff)
downloadgsoc2013-evolution-1ebee5b96f0861a48a1de9b8230540d740dd65cf.tar.gz
gsoc2013-evolution-1ebee5b96f0861a48a1de9b8230540d740dd65cf.tar.zst
gsoc2013-evolution-1ebee5b96f0861a48a1de9b8230540d740dd65cf.zip
New files with a simple sequence to migrate the task components from the
2001-01-18 Federico Mena Quintero <federico@ximian.com> * gui/tasks-migrate.[ch]: New files with a simple sequence to migrate the task components from the old calendar folder into the new tasks folder. * gui/component-factory.c (owner_set_cb): Call tasks_migrate() once evolution_dir is set. It sucks to have to do this here. * cal-client/cal-client.c (cal_client_get_uids): In the inline docs, indicate how to free the return value. (cal_opened_cb): Ahem, moved assertion to the right place. Also, ref() and unref() around our own signal emission because we are not inside a signal handler, rather a simple callback from the listener object; we want to have a chance to clean up even if the client is unrefed during the emission. * gui/Makefile.am (evolution_calendar_SOURCES): Added tasks-migrate.[ch] to the list of sources. 2001-01-17 Federico Mena Quintero <federico@ximian.com> * gui/event-editor.c (init_widgets): Use e_calendar_item_set_max_days_sel() instead of setting GTK+ object arguments. * gui/e-day-view.c (e_day_view_set_cal_client): Oops, we had a reversed test for the client being loaded. * gui/tag-calendar.c (tag_calendar_by_client): Fixed similarly reversed test. svn path=/trunk/; revision=7622
Diffstat (limited to 'calendar/cal-client/cal-client.c')
-rw-r--r--calendar/cal-client/cal-client.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/calendar/cal-client/cal-client.c b/calendar/cal-client/cal-client.c
index a89cfae40c..0012ec3706 100644
--- a/calendar/cal-client/cal-client.c
+++ b/calendar/cal-client/cal-client.c
@@ -347,7 +347,13 @@ cal_opened_cb (CalListener *listener,
out:
- g_assert (priv->load_state != CAL_CLIENT_LOAD_LOADING);
+ /* We are *not* inside a signal handler (this is just a simple callback
+ * called from the listener), so there is not a temporary reference to
+ * the client object. We ref() so that we can safely emit our own
+ * signal and clean up.
+ */
+
+ gtk_object_ref (GTK_OBJECT (client));
gtk_signal_emit (GTK_OBJECT (client), cal_client_signals[CAL_OPENED],
client_status);
@@ -357,6 +363,10 @@ cal_opened_cb (CalListener *listener,
g_free (priv->uri);
priv->uri = NULL;
}
+
+ g_assert (priv->load_state != CAL_CLIENT_LOAD_LOADING);
+
+ gtk_object_unref (GTK_OBJECT (client));
}
/* Handle the obj_updated signal from the listener */
@@ -713,7 +723,8 @@ build_uid_list (GNOME_Evolution_Calendar_CalObjUIDSeq *seq)
* Queries a calendar for a list of unique identifiers corresponding to calendar
* objects whose type matches one of the types specified in the @type flags.
*
- * Return value: A list of strings that are the sought UIDs.
+ * Return value: A list of strings that are the sought UIDs. This should be
+ * freed using the cal_obj_uid_list_free() function.
**/
GList *
cal_client_get_uids (CalClient *client, CalObjType type)