rem: event.preventBubble(); 
add: event.stopPropagation(); 
context: function ThreadPaneOnClick(event){    // we only care about button 0 (left click) events    if (event.button != 0) return;    // we are already handling marking as read and flagging    // in nsMsgDBView.cpp    // so all we need to worry about here is double clicks    // and column header.    //    // we get in here for clicks on the "treecol" (headers)    // and the "scrollbarbutton" (scrollbar buttons)    // we don't want those events to cause a "double click"    var t = event.originalTarget;    if (t.localName == "treecol") {       HandleColumnClick(t.id);    }    else if (t.localName == "treechildren") {      var row = new Object;      var col = new Object;      var childElt = new Object;      var tree = GetThreadTree();      // figure out what cell the click was in      tree.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, childElt);      if (row.value == -1)       return;      // if the cell is in a "cycler" column      // or if the user double clicked on the twisty,      // don't open the message in a new window      if (event.detail == 2 && !col.value.cycler && (childElt.value != "twisty")) {        ThreadPaneDoubleClick();        // double clicking should not toggle the open / close state of the         // thread.  this will happen if we don't prevent the event from        // bubbling to the default handler in tree.xml        event.preventBubble();      }      else if (col.value.id == "junkStatusCol") {        MsgJunkMailInfo(true);      }      else if (col.value.id == "threadCol" && !event.shiftKey &&          (event.ctrlKey || event.metaKey)) {        gDBView.ExpandAndSelectThreadByIndex(row.value, true);        event.preventBubble();      }    }}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/04cfde2d6fd8dbf1abe2b7ec6ca8d6cbb0386d6d/threadPane.js/clean/mailnews/base/resources/content/threadPane.js