nsPoint coord;
nsRect coord;
nsRangeList::FetchDesiredX() //the x position requested by the Key Handling for up down{  if (!mTracker)  {    NS_ASSERTION(0,"fetch desired X failed\n");    return -1;  }  if (mDesiredXSet)    return mDesiredX;  else {    nsPoint coord;    PRBool  collapsed;    nsCOMPtr<nsICaret> caret;    nsCOMPtr<nsIPresContext> context;    nsCOMPtr<nsIPresShell> shell;    nsresult result = mTracker->GetPresContext(getter_AddRefs(context));    if (NS_FAILED(result) || !context)      return result;    result = context->GetShell(getter_AddRefs(shell));    if (NS_FAILED(result) || !shell)      return result;    result = shell->GetCaret(getter_AddRefs(caret));    if (NS_FAILED(result) || !caret)      return result;    result = caret->GetWindowRelativeCoordinates(coord,collapsed);    if (NS_FAILED(result))      return result;    return coord.x;  }}