diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2001-01-27 11:39:24 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2001-01-27 11:39:24 +0800 |
commit | 50cedfaadd7cc87d8c74fdff330c45f637c89e0b (patch) | |
tree | f87fe835cb39c6fffdc4bdf1c29ad2b8a1aa3533 /mail/mail-display.c | |
parent | 93c8da913ba3e095432d6e2c07c8fcd6f5c3bef7 (diff) | |
download | gsoc2013-evolution-50cedfaadd7cc87d8c74fdff330c45f637c89e0b.tar gsoc2013-evolution-50cedfaadd7cc87d8c74fdff330c45f637c89e0b.tar.gz gsoc2013-evolution-50cedfaadd7cc87d8c74fdff330c45f637c89e0b.tar.bz2 gsoc2013-evolution-50cedfaadd7cc87d8c74fdff330c45f637c89e0b.tar.lz gsoc2013-evolution-50cedfaadd7cc87d8c74fdff330c45f637c89e0b.tar.xz gsoc2013-evolution-50cedfaadd7cc87d8c74fdff330c45f637c89e0b.tar.zst gsoc2013-evolution-50cedfaadd7cc87d8c74fdff330c45f637c89e0b.zip |
Try a control before an embeddable instead of an embeddable before a
control when embedding something in the mail display.
svn path=/trunk/; revision=7845
Diffstat (limited to 'mail/mail-display.c')
-rw-r--r-- | mail/mail-display.c | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/mail/mail-display.c b/mail/mail-display.c index 28587fe1a3..7d2cff4a8b 100644 --- a/mail/mail-display.c +++ b/mail/mail-display.c @@ -557,24 +557,29 @@ get_embedded_for_component (const char *iid, MailDisplay *md) BonoboControlFrame *control_frame; Bonobo_PropertyBag prop_bag; - embedded = bonobo_widget_new_subdoc (iid, NULL); - if (embedded) { - /* FIXME: as of bonobo 0.18, there's an extra - * client_site dereference in the BonoboWidget - * destruction path that we have to balance out to - * prevent problems. - */ - bonobo_object_ref (BONOBO_OBJECT(bonobo_widget_get_client_site ( - BONOBO_WIDGET (embedded)))); - - return embedded; - } - /* - * Try a control now + * First try a control. */ embedded = bonobo_widget_new_control (iid, NULL); - if (!embedded) + if (embedded == NULL) { + /* + * No control, try an embeddable instead. + */ + embedded = bonobo_widget_new_subdoc (iid, NULL); + if (embedded != NULL) { + /* FIXME: as of bonobo 0.18, there's an extra + * client_site dereference in the BonoboWidget + * destruction path that we have to balance out to + * prevent problems. + */ + bonobo_object_ref (BONOBO_OBJECT(bonobo_widget_get_client_site ( + BONOBO_WIDGET (embedded)))); + + return embedded; + } + } + + if (embedded == NULL) return NULL; control_frame = bonobo_widget_get_control_frame (BONOBO_WIDGET (embedded)); |