зеркало из https://github.com/mozilla/gecko-dev.git
Bug 729373 - Move focus to chrome when overscrolling up with keyboard. r=cpeterson
This commit is contained in:
Родитель
b40c86ca32
Коммит
56e683c816
|
@ -973,6 +973,13 @@ abstract public class GeckoApp
|
|||
mBrowserToolbar.show();
|
||||
}
|
||||
});
|
||||
} else if (event.equals("ToggleChrome:Focus")) {
|
||||
mMainHandler.post(new Runnable() {
|
||||
public void run() {
|
||||
mBrowserToolbar.setVisibility(View.VISIBLE);
|
||||
mBrowserToolbar.requestFocusFromTouch();
|
||||
}
|
||||
});
|
||||
} else if (event.equals("DOMFullScreen:Start")) {
|
||||
mDOMFullScreen = true;
|
||||
} else if (event.equals("DOMFullScreen:Stop")) {
|
||||
|
@ -1788,6 +1795,7 @@ abstract public class GeckoApp
|
|||
GeckoAppShell.registerGeckoEventListener("DOMFullScreen:Stop", GeckoApp.mAppContext);
|
||||
GeckoAppShell.registerGeckoEventListener("ToggleChrome:Hide", GeckoApp.mAppContext);
|
||||
GeckoAppShell.registerGeckoEventListener("ToggleChrome:Show", GeckoApp.mAppContext);
|
||||
GeckoAppShell.registerGeckoEventListener("ToggleChrome:Focus", GeckoApp.mAppContext);
|
||||
GeckoAppShell.registerGeckoEventListener("Permissions:Data", GeckoApp.mAppContext);
|
||||
GeckoAppShell.registerGeckoEventListener("Downloads:Done", GeckoApp.mAppContext);
|
||||
GeckoAppShell.registerGeckoEventListener("CharEncoding:Data", GeckoApp.mAppContext);
|
||||
|
@ -2160,6 +2168,7 @@ abstract public class GeckoApp
|
|||
GeckoAppShell.unregisterGeckoEventListener("Toast:Show", GeckoApp.mAppContext);
|
||||
GeckoAppShell.unregisterGeckoEventListener("ToggleChrome:Hide", GeckoApp.mAppContext);
|
||||
GeckoAppShell.unregisterGeckoEventListener("ToggleChrome:Show", GeckoApp.mAppContext);
|
||||
GeckoAppShell.unregisterGeckoEventListener("ToggleChrome:Focus", GeckoApp.mAppContext);
|
||||
GeckoAppShell.unregisterGeckoEventListener("Permissions:Data", GeckoApp.mAppContext);
|
||||
GeckoAppShell.unregisterGeckoEventListener("Downloads:Done", GeckoApp.mAppContext);
|
||||
GeckoAppShell.unregisterGeckoEventListener("CharEncoding:Data", GeckoApp.mAppContext);
|
||||
|
|
|
@ -1563,6 +1563,10 @@ Tab.prototype = {
|
|||
};
|
||||
sendMessageToJava(message);
|
||||
|
||||
this.overscrollController = new OverscrollController(this);
|
||||
this.browser.contentWindow.controllers
|
||||
.insertControllerAt(0, this.overscrollController);
|
||||
|
||||
let flags = Ci.nsIWebProgress.NOTIFY_STATE_ALL |
|
||||
Ci.nsIWebProgress.NOTIFY_LOCATION |
|
||||
Ci.nsIWebProgress.NOTIFY_SECURITY;
|
||||
|
@ -1611,6 +1615,9 @@ Tab.prototype = {
|
|||
if (!this.browser)
|
||||
return;
|
||||
|
||||
this.browser.controllers.contentWindow
|
||||
.removeController(this.overscrollController);
|
||||
|
||||
this.browser.removeProgressListener(this);
|
||||
this.browser.removeEventListener("DOMContentLoaded", this, true);
|
||||
this.browser.removeEventListener("DOMLinkAdded", this, true);
|
||||
|
@ -4322,3 +4329,25 @@ var CharacterEncoding = {
|
|||
}
|
||||
};
|
||||
|
||||
function OverscrollController(aTab) {
|
||||
this.tab = aTab;
|
||||
}
|
||||
|
||||
OverscrollController.prototype = {
|
||||
supportsCommand : function supportsCommand(aCommand) {
|
||||
if (aCommand != "cmd_linePrevious" && aCommand != "cmd_scrollPageUp")
|
||||
return false;
|
||||
|
||||
return (this.tab.viewport.y == 0);
|
||||
},
|
||||
|
||||
isCommandEnabled : function isCommandEnabled(aCommand) {
|
||||
return this.supportsCommand(aCommand);
|
||||
},
|
||||
|
||||
doCommand : function doCommand(aCommand){
|
||||
sendMessageToJava({ gecko: { type: "ToggleChrome:Focus" } });
|
||||
},
|
||||
|
||||
onEvent : function onEvent(aEvent) { }
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче