diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-05-19 17:30:12 +0100 |
---|---|---|
committer | Vivek Dasmohapatra <vivek@collabora.co.uk> | 2011-09-06 14:49:46 +0100 |
commit | adf270a5a0382b0345fa7ee43904409c3157c96e (patch) | |
tree | 0d81de8f04fb430a08ca15cbbafc539fb1ad5665 | |
parent | 52e9df56a40d027e0972158a600c1b7695820113 (diff) | |
download | telepathy-mission-control-adf270a5a0382b0345fa7ee43904409c3157c96e.tar.gz |
fd.o #34025 (ish): if we handle a channel internally, record that fact
This means we'll include it in the set of handled channels when we invoke
Observers with Recover=TRUE.
We don't do this when calling _mcd_request_handle_internally (., ., FALSE)
since we're not really behaving like a Handler in that case - more like
an Observer or something.
-rw-r--r-- | src/mcd-dispatch-operation.c | 4 | ||||
-rw-r--r-- | src/mcd-handler-map-priv.h | 4 | ||||
-rw-r--r-- | src/mcd-handler-map.c | 10 |
3 files changed, 17 insertions, 1 deletions
diff --git a/src/mcd-dispatch-operation.c b/src/mcd-dispatch-operation.c index a2b60666..e8823a1a 100644 --- a/src/mcd-dispatch-operation.c +++ b/src/mcd-dispatch-operation.c @@ -501,6 +501,10 @@ _mcd_dispatch_operation_check_client_locks (McdDispatchOperation *self) continue; DEBUG ("Internal handler for request channel #%u", i); + _mcd_handler_map_set_channel_handled_internally ( + self->priv->handler_map, + mcd_channel_get_tp_channel (channel), + _mcd_dispatch_operation_get_account_path (self)); _mcd_request_handle_internally (request, channel, TRUE); } diff --git a/src/mcd-handler-map-priv.h b/src/mcd-handler-map-priv.h index 7de292d8..c90603f9 100644 --- a/src/mcd-handler-map-priv.h +++ b/src/mcd-handler-map-priv.h @@ -86,6 +86,10 @@ GList *_mcd_handler_map_get_handled_channels (McdHandlerMap *self); const gchar *_mcd_handler_map_get_channel_account (McdHandlerMap *self, const gchar *channel_path); +void _mcd_handler_map_set_channel_handled_internally (McdHandlerMap *self, + TpChannel *channel, + const gchar *account_path); + G_END_DECLS #endif diff --git a/src/mcd-handler-map.c b/src/mcd-handler-map.c index 3e8e69aa..933a0ae2 100644 --- a/src/mcd-handler-map.c +++ b/src/mcd-handler-map.c @@ -423,4 +423,12 @@ _mcd_handler_map_get_channel_account (McdHandlerMap *self, channel_path); } - +void +_mcd_handler_map_set_channel_handled_internally (McdHandlerMap *self, + TpChannel *channel, + const gchar *account_path) +{ + _mcd_handler_map_set_channel_handled (self, channel, + tp_dbus_daemon_get_unique_name (self->priv->dbus_daemon), + NULL, account_path); +} |