diff --git a/mozilla/extensions/spatialnavigation/src/nsSpatialNavigation.cpp b/mozilla/extensions/spatialnavigation/src/nsSpatialNavigation.cpp index d134115ffff..08f4d86b3ef 100755 --- a/mozilla/extensions/spatialnavigation/src/nsSpatialNavigation.cpp +++ b/mozilla/extensions/spatialnavigation/src/nsSpatialNavigation.cpp @@ -89,7 +89,22 @@ nsSpatialNavigation::KeyPress(nsIDOMEvent* aEvent) prefBranch->GetBoolPref("snav.enabled", &enabled); if (!enabled) // this doesn't work. wtf? if (!mService->mEnabled) return NS_OK; - + + + nsCOMPtr 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 + + PRBool preventDefault; + uiEvent->GetPreventDefault(&preventDefault); + if (preventDefault) + return NS_OK; + } + + PRInt32 formControlType = -1; // check to see if we are in a text field. // based on nsTypeAheadFind.