[Telepathy-commits] [telepathy-spec/master] Client.ChannelHandler: add some thoughts on focus-stealing prevention
Simon McVittie
simon.mcvittie at collabora.co.uk
Fri Sep 26 08:21:32 PDT 2008
20080711194729-53eee-84b7d62d8f5e9347a4e9303f0f8c1e110b8a63f3.gz
---
spec/Client_Channel_Handler.xml | 23 ++++++++++++++++++++---
1 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/spec/Client_Channel_Handler.xml b/spec/Client_Channel_Handler.xml
index bc4d196..a56950c 100644
--- a/spec/Client_Channel_Handler.xml
+++ b/spec/Client_Channel_Handler.xml
@@ -73,6 +73,20 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>Called by the channel dispatcher when an Approver indicates that
this client should handle these channels.</p>
+
+ <p>The channel handler SHOULD NOT take input focus as a result of
+ this method; the channel dispatcher SHOULD call HandleChannels
+ followed by Present if the channels were requested by explicit
+ user action.</p>
+
+ <tp:rationale>
+ <p>Channels created as a side-effect of a request for other channels
+ shouldn't get their handler in the foreground. Suppose AbiWord
+ requests an XMPP MUC (chatroom) Tube, and joining this tube
+ requires the CM to join a corresponding Text channel which is then
+ handled by some handler other than AbiWord. In this case the Text
+ channel handler shouldn't take focus away from AbiWord.</p>
+ </tp:rationale>
</tp:docstring>
<!-- FIXME: other dispatching-related info? -->
@@ -104,11 +118,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
bring it to the foreground, give it focus, or use some other way to
bring it to the user's attention.</p>
- <p>This method is called by the channel dispatcher if existing
- channels are re-requested. As a result, it SHOULD only ever be
- called in response to user action, which means that the client
+ <p>This method is called by the channel dispatcher after channels
+ are requested. As a result, it SHOULD only ever be called in
+ response to user action, which means that the client
MAY take input focus as a result.</p>
+ <!-- FIXME: incorporate a focus-stealing-prevention timestamp
+ somehow -->
+
<p>If any of the given channels are not being handled by this
channel handler, they MUST be ignored. The channel dispatcher
MAY include channels in the argument even if this channel
--
1.5.6.5
More information about the Telepathy-commits
mailing list