PostReason(aState?nsISelectionListener::MOUSEDOWN_REASON:nsISelectionListener::MOUSEUP_REASON);
short reason; if (aState) reason = nsISelectionListener::MOUSEDOWN_REASON; else reason = nsISelectionListener::MOUSEUP_REASON; PostReason(reason);
nsSelection::SetMouseDownState(PRBool aState){  if (mMouseDownState == aState)    return NS_OK;  mMouseDownState = aState;  if (!mMouseDownState)  {    // Mouse up kills dragging-table cell selection#ifdef DEBUG_TABLE_SELECTIONprintf("SetMouseDownState to FALSE - stopping cell selection\n");#endif    mSelectingTableCells = PR_FALSE;    mStartSelectedCell = nsnull;    mEndSelectedCell = nsnull;    PostReason(aState?nsISelectionListener::MOUSEDOWN_REASON:nsISelectionListener::MOUSEUP_REASON);//not a drag reason    NotifySelectionListeners(nsISelectionController::SELECTION_NORMAL);//notify that reason is mouse up please.  }  return NS_OK;}