nsCOMPtr<nsIDOMNSUIEvent> uiEvent(do_QueryInterface(aEvent)); if(uiEvent) { // If a web page wants to use the keys mapped to our // move, they have to use evt.preventDefault() after // they get the key
if(mService->mIgnoreTextFields) { if(formControlType == NS_FORM_TEXTAREA || formControlType == NS_FORM_INPUT_TEXT || formControlType == NS_FORM_INPUT_PASSWORD || formControlType == NS_FORM_INPUT_FILE) { returnNS_OK; } } } elseif(mService->mIgnoreTextFields && targetContent->IsNodeOfType(nsINode::eHTML)) { // Test for isindex, a deprecated kind of text field. We're using a string // compare because <isindex> is not considered a form control, so it does // not support nsIFormControl or eHTML_FORM_CONTROL, and it's not worth // having a table of atoms just for it.
// If we are going up or down, in a select, lets not // navigate. // // FIX: What we really want to do is determine if we are // at the start or the end fo the form element, and // based on the selected position we decide to nav. or // not.
// ************************************************************************************ // NS_FORM_SELECT cases: // * if it is a select form of 'size' attr != than '1' then we do as above.
// * if it is a select form of 'size' attr == than '1', snav can take care of it. // if (formControlType == NS_FORM_SELECT) // return NS_OK;
if(keyCode == mService->mKeyCodeDown) { // If we are going up or down, in a select, lets not // navigate. // // FIX: What we really want to do is determine if we are // at the start or the end fo the form element, and // based on the selected position we decide to nav. or // not.
// ************************************************************************************ // NS_FORM_SELECT cases: // * if it is a select form of 'size' attr != than '1' then we do as above.
// * if it is a select form of 'size' attr == than '1', snav can take care of it. // if (formControlType == NS_FORM_SELECT) // return NS_OK;
aEvent->StopPropagation();// We're using this key, no one else should aEvent->PreventDefault(); returnDown(); }