Hi, We discussed a problem on IRC and I'll summarise it with a simple real-live use-case:
Alice has a megaphone applet[1] on her gnome-panel with Bob's contact. When she clicks on that applet a audio/video call starts with Bob. Alice also have empathy's contact list, when she clicks on the microphone icon near Bobs's avatar it starts a call with Bob. Alice calls Bob using the empathy's contact list, then do something else (she don't need to have focus on the call window to speak with her microphone). At some point she wants to get the focus back to the call window and clicks on the megaphone applet because she don't know where the window is (could be on another desktop, lost somewhere). Actual result: A 2nd call is initiated Expected result: The existing call window get focus because the system knows that's stupid to call the same person twice. The problem: The megaphone applet and empathy contact list are 2 different processes so they can't know that there is already an existing channel for that call. They could list all existing channels and check one-by-one if that's the channel for the call it wants but then it has no way to tell the call-channel-handler that that call should get the focus. With named channels (handle_type != 0) and NMC4.x that can be worked around by requesting again the channel so it get dispatched again and the channel handler can see if there is already a window showing the (handle_type, handle) tuple and give focus to it if it exists, create a new window otherwise. However we discussed that redispatching channels is wrong and that solution doesn't work for unnamed channels, so we need a better way. Xavier Claessens. _______________________________________________ Telepathy mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/telepathy
