diff --git a/mozilla/extensions/spatialnavigation/src/nsSpatialNavigation.cpp b/mozilla/extensions/spatialnavigation/src/nsSpatialNavigation.cpp index 0fdf3e9f2e5..c196efb9708 100755 --- a/mozilla/extensions/spatialnavigation/src/nsSpatialNavigation.cpp +++ b/mozilla/extensions/spatialnavigation/src/nsSpatialNavigation.cpp @@ -38,6 +38,7 @@ PRInt32 gRectFudge = 20; PRInt32 gDirectionalBias = 3; +PRInt32 gScrollOffset = 26; NS_INTERFACE_MAP_BEGIN(nsSpatialNavigation) NS_INTERFACE_MAP_ENTRY(nsISpatialNavigation) @@ -608,6 +609,24 @@ nsSpatialNavigation::handleMove(int direction) // if everything fails, default is to move the focus just as if the user hit tab. // presContext->EventStateManager()->ShiftFocus(PR_TRUE, focusedContent); + // how about this, if we find anything, we just scroll the + // page in the direction of the navigation?? + { + nsCOMPtr contentWindow = getContentWindow(); + if (!contentWindow) + return NS_OK; + + if (direction == eNavLeft) + contentWindow->ScrollBy(-1* gScrollOffset, 0); + else if (direction == eNavRight) + contentWindow->ScrollBy(gScrollOffset, 0); + else if (direction == eNavUp) + contentWindow->ScrollBy(0, -1 * gScrollOffset); + else + contentWindow->ScrollBy(0, gScrollOffset); + } + + /////////////////////////////////////////////////////////////////////////////////////////////////// return NS_OK;