diff --git a/src/as/com/threerings/crowd/chat/client/ChatDirector.as b/src/as/com/threerings/crowd/chat/client/ChatDirector.as index ab9d81755..77b01e1b7 100644 --- a/src/as/com/threerings/crowd/chat/client/ChatDirector.as +++ b/src/as/com/threerings/crowd/chat/client/ChatDirector.as @@ -619,7 +619,9 @@ public class ChatDirector extends BasicDirector removeAuxiliarySource(_clobj); addAuxiliarySource(_clobj = event.getClient().getClientObject(), ChatCodes.USER_CHAT_TYPE); - clientLeftOrChanged(); + if (clearChatOnClientExit()) { + clearDisplays(); + } } // documentation inherited @@ -635,6 +637,10 @@ public class ChatDirector extends BasicDirector // in fact, clear out all auxiliary sources _auxes.clear(); + if (clearChatOnClientExit()) { + clearDisplays(); + } + // clear out the list of people we've chatted with _chatters.length = 0; notifyChatterObservers(); @@ -644,16 +650,6 @@ public class ChatDirector extends BasicDirector // clear our service _cservice = null; - - clientLeftOrChanged(); - } - - /** - * Overridable. - */ - protected function clientLeftOrChanged () :void - { - clearDisplays(); } /** @@ -987,6 +983,12 @@ public class ChatDirector extends BasicDirector _cservice = (client.requireService(ChatService) as ChatService); } + /** Overrideable. */ + protected function clearChatOnClientExit () :Boolean + { + return true; + } + /** Our active chat context. */ protected var _cctx :CrowdContext;