<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -562,6 +562,34 @@ function closeConversation(account, address) {
     }
 }
 
+function promptOpenConversation(account, address, type, nick) {
+    var request = {
+        address: address,
+        account: account,
+        type: type,
+        nick: nick,
+        confirm: false
+    }
+
+    window.openDialog(
+        'chrome://sameplace/content/open.xul',
+        'sameplace-open-conversation', 'modal,centerscreen',
+        request);   
+
+    if(request.confirm)
+        if(request.type == 'groupchat')
+            joinRoom(request.account, request.address, request.nick);
+        else           
+            if(isConversationOpen(request.account, request.address))
+                focusConversation(request.account, request.address);
+            else
+                withConversation(
+                    request.account, request.address, null, null, true, 
+                    function() {
+                        focusConversation(request.account, request.address);
+                    });
+}
+
 
 // GUI REACTIONS
 // ----------------------------------------------------------------------
@@ -702,10 +730,13 @@ function clickedContact(contact) {
     var address = contact.getAttribute('address');
     var type = contact.getAttribute('type');
 
-    withConversation(
-        account, address, null, type, true, function() {
-            focusConversation(account, address);
-        });
+    if(type == 'groupchat') 
+        promptOpenConversation(account, address, type);
+    else 
+        withConversation(
+            account, address, null, type, true, function() {
+                focusConversation(account, address);
+            });
 }
 
 function requestedCloseConversation(element) {
@@ -731,31 +762,7 @@ function requestedCloseConversation(element) {
 }
 
 function requestedOpenConversation() {
-    var request = {
-        address: undefined,
-        nick: undefined,
-        confirm: false,
-        account: undefined,
-        type: undefined
-    };
-
-    window.openDialog(
-        'chrome://sameplace/content/open.xul',
-        'sameplace-open-conversation', 'modal,centerscreen',
-        request);
-
-    if(request.confirm)
-        if(request.type == 'groupchat')
-            joinRoom(request.account, request.address, request.nick);
-        else           
-            if(isConversationOpen(request.account, request.address))
-               focusConversation(request.account, request.address);
-            else
-                withConversation(
-                    request.account, request.address, null, null, true, 
-                    function() {
-                        focusConversation(request.account, request.address);
-                    });
+    promptOpenConversation();    
 }
 
 function clickedTopic(event) {
@@ -997,5 +1004,3 @@ function log(msg) {
         .getService(Ci.nsIConsoleService)
         .logStringMessage(msg);
 }
-
-</diff>
      <filename>chrome/content/sameplace.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4a841ff1d713e24c3f12bd002d460f8fefea1b0b</id>
    </parent>
  </parents>
  <author>
    <name>Massimiliano Mirra</name>
    <email>bard@hyperstruct.net</email>
  </author>
  <url>http://github.com/bard/sameplace/commit/458e1d9494e5e8f587dfa74969cdb93e364bdfa0</url>
  <id>458e1d9494e5e8f587dfa74969cdb93e364bdfa0</id>
  <committed-date>2006-10-20T04:50:46-07:00</committed-date>
  <authored-date>2006-10-20T04:50:46-07:00</authored-date>
  <message>Clicking on groupchat contact brings up the open conversation dialog, presetting the room address and the account it was accessed with.

darcs-hash:20061020115046-8cc29-65b03ab7e99d149f02053b5cf0fd551a7b680dec.gz</message>
  <tree>5350cfd662d9fc2cefee456380891eca0b585027</tree>
  <committer>
    <name>Massimiliano Mirra</name>
    <email>bard@hyperstruct.net</email>
  </committer>
</commit>
