diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-04-29 09:38:15 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-04-29 09:38:15 +0800 |
commit | 9192f0dc883acfaff0fbe3f6a7f8e49672546a02 (patch) | |
tree | 2184176417efab7fc754de058d5739bec0468fc1 /e-util | |
parent | 0b04c6cfd743afcf5a4e6a195a120776074cb2a7 (diff) | |
parent | c868ace2e93942aef027085353bff2bd736584b3 (diff) | |
download | gsoc2013-evolution-9192f0dc883acfaff0fbe3f6a7f8e49672546a02.tar.gz gsoc2013-evolution-9192f0dc883acfaff0fbe3f6a7f8e49672546a02.tar.zst gsoc2013-evolution-9192f0dc883acfaff0fbe3f6a7f8e49672546a02.zip |
Merge branch 'master' into kill-bonobo
Conflicts:
a11y/widgets/Makefile.am
a11y/widgets/ea-widgets.c
a11y/widgets/ea-widgets.h
addressbook/gui/component/addressbook-component.c
calendar/gui/Makefile.am
calendar/gui/calendar-component.c
calendar/gui/dialogs/comp-editor.c
calendar/gui/dialogs/event-editor.c
calendar/gui/dialogs/memo-editor.c
calendar/gui/dialogs/task-editor.c
calendar/gui/memos-component.c
calendar/gui/tasks-component.c
composer/e-composer-private.c
composer/e-msg-composer.c
configure.in
e-util/e-plugin-ui.c
e-util/e-plugin-ui.h
mail/ChangeLog
mail/Makefile.am
mail/e-mail-attachment-bar.c
mail/em-format-html-display.c
mail/em-format-html-display.h
mail/em-format-html.h
mail/em-format.h
mail/em-popup.c
mail/mail-component.c
plugins/external-editor/external-editor.c
widgets/misc/Makefile.am
widgets/misc/e-attachment-paned.c
widgets/misc/e-attachment-view.c
widgets/misc/e-attachment.c
Diffstat (limited to 'e-util')
-rw-r--r-- | e-util/e-util.c | 30 | ||||
-rw-r--r-- | e-util/e-util.h | 5 |
2 files changed, 35 insertions, 0 deletions
diff --git a/e-util/e-util.c b/e-util/e-util.c index 071f5e58b8..04be119657 100644 --- a/e-util/e-util.c +++ b/e-util/e-util.c @@ -1531,3 +1531,33 @@ e_camel_object_get_type (void) return type; } + +static gpointer +e_camel_object_copy (gpointer camel_object) +{ + if (CAMEL_IS_OBJECT (camel_object)) + camel_object_ref (camel_object); + + return camel_object; +} + +static void +e_camel_object_free (gpointer camel_object) +{ + if (CAMEL_IS_OBJECT (camel_object)) + camel_object_unref (camel_object); +} + +GType +e_camel_object_get_type (void) +{ + static GType type = 0; + + if (G_UNLIKELY (type == 0)) + type = g_boxed_type_register_static ( + "ECamelObject", + (GBoxedCopyFunc) e_camel_object_copy, + (GBoxedFreeFunc) e_camel_object_free); + + return type; +} diff --git a/e-util/e-util.h b/e-util/e-util.h index 34ef3466d3..c748aaed8e 100644 --- a/e-util/e-util.h +++ b/e-util/e-util.h @@ -151,6 +151,11 @@ GType e_camel_object_get_type (void); #define E_TYPE_CAMEL_OBJECT (e_camel_object_get_type ()) GType e_camel_object_get_type (void); +/* Camel uses its own object system, so we have to box + * CamelObjects to safely use them as GObject properties. */ +#define E_TYPE_CAMEL_OBJECT (e_camel_object_get_type ()) +GType e_camel_object_get_type (void); + G_END_DECLS #endif /* _E_UTIL_H_ */ |