mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-27 12:50:09 +00:00
Bug 397986 - Keyboard focus is often unclear and direction keys behave confusingly. r=dtownsend
This commit is contained in:
parent
711864bd04
commit
c9f28f0e65
@ -1166,8 +1166,51 @@ function Startup()
|
||||
|
||||
gPref.setBoolPref(PREF_UPDATE_NOTIFYUSER, false);
|
||||
|
||||
if (gUpdatesOnly && gExtensionsView.children.length == 0)
|
||||
if (gUpdatesOnly && gExtensionsView.children.length == 0) {
|
||||
window.close();
|
||||
return;
|
||||
}
|
||||
|
||||
// Left/right switches panes, up/down/pageUp/pageDown/home/end switches items in
|
||||
// the current pane, whenever either the radiogroup or the richlistbox is focused.
|
||||
window.addEventListener("keypress", function (event) {
|
||||
if (event.target != viewGroup &&
|
||||
event.target != gExtensionsView)
|
||||
return;
|
||||
|
||||
switch (event.keyCode) {
|
||||
case event.DOM_VK_LEFT:
|
||||
case event.DOM_VK_RIGHT:
|
||||
let nextFlag = (event.keyCode == event.DOM_VK_RIGHT);
|
||||
if (getComputedStyle(viewGroup, "").direction == "rtl")
|
||||
nextFlag = !nextFlag;
|
||||
viewGroup.checkAdjacentElement(nextFlag);
|
||||
break;
|
||||
case event.DOM_VK_UP:
|
||||
gExtensionsView._moveByOffsetFromUserEvent(-1, event);
|
||||
break;
|
||||
case event.DOM_VK_DOWN:
|
||||
gExtensionsView._moveByOffsetFromUserEvent(1, event);
|
||||
break;
|
||||
case event.DOM_VK_PAGE_UP:
|
||||
gExtensionsView._moveByOffsetFromUserEvent(gExtensionsView.scrollOnePage(-1), event);
|
||||
break;
|
||||
case event.DOM_VK_PAGE_DOWN:
|
||||
gExtensionsView._moveByOffsetFromUserEvent(gExtensionsView.scrollOnePage(1), event);
|
||||
break;
|
||||
case event.DOM_VK_HOME:
|
||||
gExtensionsView._moveByOffsetFromUserEvent(-gExtensionsView.currentIndex, event);
|
||||
break;
|
||||
case event.DOM_VK_END:
|
||||
gExtensionsView._moveByOffsetFromUserEvent(gExtensionsView.getRowCount() -
|
||||
gExtensionsView.currentIndex - 1, event);
|
||||
break;
|
||||
default:
|
||||
return; // don't consume the event
|
||||
}
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
}, true);
|
||||
}
|
||||
|
||||
function Shutdown()
|
||||
|
Loading…
x
Reference in New Issue
Block a user