<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -401,7 +401,7 @@ contacts.requestedRemoveContact = function(event) {
 
 contacts.requestedRenameContact = function(event, useNickAsPreset) {
     var xulPopup = $('#contact-popup');
-    var xulContact = this._hoveredContact;
+    var xulContact = document.popupNode;
 
     xulPopup.hidePopup();
 
@@ -607,7 +607,7 @@ contacts.showingContactPopup = function(xulPopup) {
     // For some reason, document.popupNode isn't available when popup
     // was opened through openPopup()
 
-    var xulContact = this._hoveredContact;
+    var xulContact = $(document.popupNode, '^ .contact');
 
     $(xulPopup, '.name').setAttribute('value', $(xulContact, '.name').getAttribute('value'));
     $(xulPopup, '.status-message').textContent = $(xulContact, '.status-message').getAttribute('value');
@@ -682,49 +682,6 @@ contacts.showingContactPopup = function(xulPopup) {
     retrieveVCardTask.start();
 };
 
-// hoveredContact, unhoveredContact, hoveredContactPopup,
-// unhoveredContactPopup handle interaction between contacts and their
-// &quot;More info&quot; popups.  Desired behaviour is:
-//
-// - if mouse stays on contact for longer than one second, bring up
-//   popup;
-//
-// - if mouse leaves contact for longer than one second and doesn't
-//   enter popup, hide popup;
-//
-// - if mouse enters popup and then leaves it for longer than one
-//   second, hide popup.
-
-contacts.hoveredContact = function(event) {
-    var xulContact = event.currentTarget;
-
-    this._showPopupTimeout = window.setTimeout(function() {
-        contacts._hoveredContact = xulContact;
-        $('#contact-popup').openPopup(xulContact, 'end_before', -80, -20, false, false);
-    }, 1000);
-};
-
-contacts.unhoveredContact = function(event) {
-    if(this._showPopupTimeout)
-        window.clearTimeout(this._showPopupTimeout);
-
-    if($('#contact-popup').state == 'open')
-        this._hidePopupTimeout = window.setTimeout(function() {
-            $('#contact-popup').hidePopup();
-        }, 1000);
-};
-
-contacts.hoveredContactPopup = function(xulPopup) {
-    if(this._hidePopupTimeout)
-        window.clearTimeout(this._hidePopupTimeout);
-};
-
-contacts.unhoveredContactPopup = function(xulPopup) {
-    this._hidePopupTimeout = window.setTimeout(function() {
-        xulPopup.hidePopup();
-    }, 1000);
-};
-
 
 // INTERNALS
 // ----------------------------------------------------------------------</diff>
      <filename>chrome/content/dashboard/widget_contacts.js</filename>
    </modified>
    <modified>
      <diff>@@ -39,13 +39,12 @@
   &lt;popupset id=&quot;popups&quot;&gt;
     &lt;panel id=&quot;contact-popup&quot;
            onpopupshowing=&quot;contacts.showingContactPopup(this);&quot;
-           onpopuphiding=&quot;contacts.hidingContactPopup(this);&quot;
-           onmouseover=&quot;if(!eventFromDescendant(this, event)) contacts.hoveredContactPopup(this);&quot;
-           onmouseout=&quot;if(!eventFromDescendant(this, event)) contacts.unhoveredContactPopup(this);&quot;&gt;
+           onpopuphiding=&quot;contacts.hidingContactPopup(this);&quot;&gt;
+
       &lt;vbox class=&quot;contact&quot; account=&quot;&quot; address=&quot;&quot;&gt;
         &lt;hbox align=&quot;baseline&quot;&gt;
           &lt;label value=&quot;Chat &#187;&quot; class=&quot;text-link&quot; style=&quot;font-size: 17px;&quot;
-                 onclick=&quot;this.blur(); contacts.clickedContact(this);&quot;/&gt;
+                 onclick=&quot;this.blur(); contacts.clickedContact(document.popupNode);&quot;/&gt;
           &lt;label value=&quot;Video &#187;&quot; class=&quot;text-link&quot; style=&quot;font-size: 14px;&quot; hidden=&quot;true&quot;/&gt;
           &lt;label value=&quot;Share files &#187;&quot; class=&quot;text-link&quot; style=&quot;font-size: 14px;&quot; hidden=&quot;true&quot;/&gt;
         &lt;/hbox&gt;
@@ -140,8 +139,6 @@
 
   &lt;box id=&quot;blueprints&quot;&gt;
     &lt;richlistitem class=&quot;contact&quot;
-                  onmouseover=&quot;if(!eventFromDescendant(this, event)) contacts.hoveredContact(event);&quot;
-                  onmouseout=&quot;if(!eventFromDescendant(this, event)) contacts.unhoveredContact(event);&quot;
                   availability=&quot;unavailable&quot;
                   address=&quot;&quot;
                   account=&quot;&quot;
@@ -154,7 +151,10 @@
                flex=&quot;1&quot;
                onclick=&quot;contacts.clickedContact(this);&quot;/&gt;
         &lt;spacer flex=&quot;100&quot;/&gt;
+        
         &lt;image class=&quot;avatar&quot; src=&quot;&quot; width=&quot;16&quot; height=&quot;16&quot;/&gt;
+
+        &lt;button class=&quot;options&quot; type=&quot;menu&quot; menu=&quot;contact-popup&quot;/&gt;
       &lt;/hbox&gt;
 
       &lt;label class=&quot;status-message&quot;</diff>
      <filename>chrome/content/dashboard/widget_contacts.xul</filename>
    </modified>
    <modified>
      <diff>@@ -85,4 +85,21 @@
 #widget-contacts .list &gt; richlistitem[selected=&quot;true&quot;] {
     background: inherit;
     color: inherit;
-}
\ No newline at end of file
+}
+
+.contact .options {
+    margin: 0;
+    padding: 0;
+    -moz-appearance: none;
+    border: none;
+    min-width: 0;
+    max-width: 0;
+    background: transparent;
+    -moz-border-radius: 3px;
+    background: #ddeeff;
+    opacity: 0.1;
+}
+
+.contact:hover .options {
+    opacity: 0.8;
+}</diff>
      <filename>chrome/skin/classic/dashboard/widget_contacts.css</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>18023306a267d1f6b90b48803c4a2b61e2d8608a</id>
    </parent>
  </parents>
  <author>
    <name>Massimiliano Mirra</name>
    <email>bard@hyperstruct.net</email>
  </author>
  <url>http://github.com/bard/sameplace/commit/1fe4f5ad463e7ac1eb6b94be9e546269407d647a</url>
  <id>1fe4f5ad463e7ac1eb6b94be9e546269407d647a</id>
  <committed-date>2009-04-25T22:42:53-07:00</committed-date>
  <authored-date>2009-04-25T22:42:53-07:00</authored-date>
  <message>Contacts widget: showing contact popup on click on button instead of mouse hover.</message>
  <tree>c44c695bf4dcb4061dcaaff36ad7e1fb7ced63f9</tree>
  <committer>
    <name>Massimiliano Mirra</name>
    <email>bard@hyperstruct.net</email>
  </committer>
</commit>
