diff options
author | Jonny Lamb <jonnylamb@gnome.org> | 2010-03-11 19:35:45 +0800 |
---|---|---|
committer | Jonny Lamb <jonnylamb@gnome.org> | 2010-03-11 19:35:45 +0800 |
commit | 02141c6718553ad9bf05afee05e1ef834d3bdd62 (patch) | |
tree | 43fcaad36408a612898ad681133f14bd085c15e3 | |
parent | c1dd662a2d2c94b19e431750ddc9109b5509e3b6 (diff) | |
parent | 2a98cb3d4f7222097b4ec2f5343244d1b313eac1 (diff) | |
download | gsoc2013-empathy-02141c6718553ad9bf05afee05e1ef834d3bdd62.tar.gz gsoc2013-empathy-02141c6718553ad9bf05afee05e1ef834d3bdd62.tar.zst gsoc2013-empathy-02141c6718553ad9bf05afee05e1ef834d3bdd62.zip |
Merge branch 'butterfly-conference-misc'
-rw-r--r-- | libempathy/empathy-dispatcher.c | 5 | ||||
-rw-r--r-- | libempathy/empathy-tp-chat.c | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/libempathy/empathy-dispatcher.c b/libempathy/empathy-dispatcher.c index caf697cb6..1edefe9bf 100644 --- a/libempathy/empathy-dispatcher.c +++ b/libempathy/empathy-dispatcher.c @@ -1808,7 +1808,7 @@ channel_class_matches (GValueArray *class, h_type = tp_asv_get_uint32 (fprops, TP_IFACE_CHANNEL ".TargetHandleType", &valid); - if (!valid || handle_type != h_type) + if (!valid || (handle_type != h_type && handle_type != TP_UNKNOWN_HANDLE_TYPE)) return FALSE; if (fixed_properties != NULL) @@ -1978,7 +1978,8 @@ setup_varargs (va_list var_args, * @dispatcher: an #EmpathyDispatcher * @connection: a #TpConnection * @channel_type: a string identifying the type of the channel to lookup - * @handle_type: the handle type for the channel + * @handle_type: the handle type for the channel, or %TP_UNKNOWN_HANDLE_TYPE + * if you don't care about the channel's target handle type * @first_property_name: %NULL, or the name of the first fixed property, * followed optionally by more names, followed by %NULL. * diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c index cba102add..7877acb22 100644 --- a/libempathy/empathy-tp-chat.c +++ b/libempathy/empathy-tp-chat.c @@ -885,6 +885,14 @@ tp_chat_update_remote_contact (EmpathyTpChat *chat) return; } + /* This is an MSN chat, but it's the new style where 1-1 chats don't + * have the group interface. If it has the conference interface, then + * it is indeed a MUC. */ + if (tp_proxy_has_interface_by_id (priv->channel, + EMP_IFACE_QUARK_CHANNEL_INTERFACE_CONFERENCE)) { + return; + } + /* This is an MSN-like chat where anyone can join the chat at anytime. * If there is only one non-self contact member, we are in a private * chat and we set the "remote-contact" property to that contact. If @@ -1280,7 +1288,7 @@ tp_chat_constructor (GType type, list = empathy_dispatcher_find_requestable_channel_classes ( dispatcher, connection, tp_channel_get_channel_type (priv->channel), - TP_HANDLE_TYPE_ROOM, NULL); + TP_UNKNOWN_HANDLE_TYPE, NULL); for (ptr = list; ptr; ptr = ptr->next) { GValueArray *array = ptr->data; |