After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 654237 - Can't open conversation tabs from the contact list if the conversation is open in the shell
Can't open conversation tabs from the contact list if the conversation is ope...
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: message-tray
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on: 652439
Blocks:
 
 
Reported: 2011-07-08 11:40 UTC by Guillaume Desmottes
Modified: 2011-07-11 12:43 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Allow other clients to preempt the channels we are handling (2.08 KB, patch)
2011-07-08 11:44 UTC, Guillaume Desmottes
reviewed Details | Review
Allow other clients to preempt the channels we are handling (2.18 KB, patch)
2011-07-11 12:38 UTC, Guillaume Desmottes
committed Details | Review

Description Guillaume Desmottes 2011-07-08 11:40:50 UTC
+++ This bug was initially created as a clone of Bug #652439 +++

Preconditions:

• have the very latest versions of MC, Empathy, and Gnome Shell

Steps to reproduce:

• Have a conversation window open in the Shell;
• Find that contact in your Empathy contact list;
• Double-click them.

Expected results:

• An Empathy conversation tab pops up.

Actual results:

• The Shell bubble pops up.

Discussion:

This is because the Shell is the handler of the channel. The contact list uses EnsureChannel; so MC just calls HandleChannels() on the current handler.

A potential fix would be to include a hint with the channel request to say “delegate this please”; the Shell would look for that hint and, if present, delegate the channel to the PreferredHandler.
Comment 1 Guillaume Desmottes 2011-07-08 11:44:46 UTC
Created attachment 191515 [details] [review]
Allow other clients to preempt the channels we are handling

This is needed if we are handling an incoming text channel and then user tries
to open a chat with the same contact using Empathy. In this case, the Shell
should delegate the channel back to Empathy and just continue observing it as
it does for usual outgoing channels.

Depends on telepathy-glib 0.15.3 as
tp_base_client_set_delegated_channels_callback() has been added in this
version.
Comment 2 Jasper St. Pierre (not reading bugmail) 2011-07-11 10:48:38 UTC
Review of attachment 191515 [details] [review]:

Why should setting a callback with an empty function fix anything?
Comment 3 Guillaume Desmottes 2011-07-11 12:38:00 UTC
(In reply to comment #2)
> Review of attachment 191515 [details] [review]:
> 
> Why should setting a callback with an empty function fix anything?

See http://telepathy.freedesktop.org/doc/telepathy-glib/telepathy-glib-base-client.html#tp-base-client-set-delegated-channels-callback

I'll add a comment.
Comment 4 Guillaume Desmottes 2011-07-11 12:38:14 UTC
Created attachment 191706 [details] [review]
Allow other clients to preempt the channels we are handling

This is needed if we are handling an incoming text channel and then user tries
to open a chat with the same contact using Empathy. In this case, the Shell
should delegate the channel back to Empathy and just continue observing it as
it does for usual outgoing channels.

Depends on telepathy-glib 0.15.3 as
tp_base_client_set_delegated_channels_callback() has been added in this
version.
Comment 5 Guillaume Desmottes 2011-07-11 12:43:50 UTC
Attachment 191706 [details] pushed as 09f3c87 - Allow other clients to preempt the channels we are handling