telepathyClient: ignore invalidated channels

There is a race if a channel is invalidated during its preparation: the
'invalidated' signal is already emitted so the Shell will never notice.
We fix this by simply checking if the channel is already invalidated when
receiving it from telepathy-glib.

In the approving case, we reject the full ChannelDispatchOperation as we only
support approving one channel at the time.

https://bugzilla.gnome.org/show_bug.cgi?id=677457
This commit is contained in:
Guillaume Desmottes
2012-06-05 12:39:30 +02:00
parent e112fa92fe
commit ededba0c6d
3 changed files with 19 additions and 0 deletions

View File

@ -105,5 +105,7 @@ void shell_tp_client_grab_contact_list_changed (ShellTpClient *self,
void shell_decline_dispatch_op (TpAddDispatchOperationContext *context,
const gchar *message);
gboolean shell_is_channel_invalidated (TpChannel *channel);
G_END_DECLS
#endif /* __SHELL_TP_CLIENT_H__ */