add: gDBView.suppressCommandUpdating = false; 
context: function HandleDeleteOrMoveMsgCompleted(folder){  if (gNextMessageViewIndexAfterDelete != -2)   {    if (IsCurrentLoadedFolder(folder))     {      var outlinerView = gDBView.QueryInterface(Components.interfaces.nsIOutlinerView);      var outlinerSelection = outlinerView.selection;      if (gNextMessageViewIndexAfterDelete != -1)       {        viewSize = outlinerView.rowCount;        if (gNextMessageViewIndexAfterDelete >= viewSize)         {          if (viewSize > 0)            gNextMessageViewIndexAfterDelete = viewSize - 1;          else            gNextMessageViewIndexAfterDelete = -1;        }      }      // if we are about to set the selection with a new element then DON'T clear      // the selection then add the next message to select. This just generates      // an extra round of command updating notifications that we are trying to      // optimize away.      if (gNextMessageViewIndexAfterDelete != -1)       {        outlinerSelection.select(gNextMessageViewIndexAfterDelete);        // since gNextMessageViewIndexAfterDelete probably has the same value        // as the last index we had selected, the outliner isn't generating a new        // selectionChanged notification for the outliner view. So we aren't loading the         // next message. to fix this, force the selection changed update.        if (outlinerView)          outlinerView.selectionChanged();        EnsureRowInThreadOutlinerIsVisible(gNextMessageViewIndexAfterDelete);       }      else       {        outlinerSelection.clearSelection(); /* clear selection in either case  */        setTitleFromFolder(folder,null);        ClearMessagePane();      }    }      gNextMessageViewIndexAfterDelete = -2;       //default value after delete/move/copy is over  }}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/ba2767833f2cf794fb7302444a57edee8cebe953/msgMail3PaneWindow.js/clean/mailnews/base/resources/content/msgMail3PaneWindow.js