ActionHandler works (at least as far as keys are concerned)
This commit is contained in:
parent
5489d7d723
commit
df79c9ddd3
@ -180,8 +180,8 @@ var ExtensionConf = {
|
|||||||
metaKey: false,
|
metaKey: false,
|
||||||
altKey: false,
|
altKey: false,
|
||||||
shiftKey: false,
|
shiftKey: false,
|
||||||
onKeyUp: false,
|
onKeyUp: true,
|
||||||
onKeyDown: true,
|
onKeyDown: false,
|
||||||
}],
|
}],
|
||||||
popup: true,
|
popup: true,
|
||||||
ui: true,
|
ui: true,
|
||||||
|
@ -34,25 +34,26 @@ class ActionHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (var action of actions) {
|
for (var action of actions) {
|
||||||
if (action.onKeyDown) {
|
var shortcut = action.shortcut[0];
|
||||||
|
if (shortcut.onKeyDown) {
|
||||||
this.keyDownActions.push(action);
|
this.keyDownActions.push(action);
|
||||||
}
|
}
|
||||||
if (action.onKeyUp) {
|
if (shortcut.onKeyUp) {
|
||||||
this.keyUpActions.push(action);
|
this.keyUpActions.push(action);
|
||||||
}
|
}
|
||||||
if (action.onScrollUp) {
|
if (shortcut.onScrollUp) {
|
||||||
this.mouseScrollUpActions.push(action);
|
this.mouseScrollUpActions.push(action);
|
||||||
}
|
}
|
||||||
if (action.onScrollDown) {
|
if (shortcut.onScrollDown) {
|
||||||
this.mouseScrollDownActions.push(action);
|
this.mouseScrollDownActions.push(action);
|
||||||
}
|
}
|
||||||
if (action.onMouseEnter) {
|
if (shortcut.onMouseEnter) {
|
||||||
this.mouseEnterActions.push(action);
|
this.mouseEnterActions.push(action);
|
||||||
}
|
}
|
||||||
if (action.onMouseLeave) {
|
if (shortcut.onMouseLeave) {
|
||||||
this.mouseLeaveActions.push(action);
|
this.mouseLeaveActions.push(action);
|
||||||
}
|
}
|
||||||
if (action.onMouseMove) {
|
if (shortcut.onMouseMove) {
|
||||||
this.mouseMoveActions.push(action);
|
this.mouseMoveActions.push(action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,7 +70,7 @@ class ActionHandler {
|
|||||||
|
|
||||||
console.log("[ActionHandler::preventAction] Testing whether we're in a textbox or something. Detailed rundown of conditions:\n" +
|
console.log("[ActionHandler::preventAction] Testing whether we're in a textbox or something. Detailed rundown of conditions:\n" +
|
||||||
"is full screen? (yes->allow):", PlayerData.isFullScreen(),
|
"is full screen? (yes->allow):", PlayerData.isFullScreen(),
|
||||||
"\nis tag one of defined inputs? (no->prevent):", this.inputs.indexOf(activeElement.tagName.toLocaleLowerCase()) !== -1,
|
"\nis tag one of defined inputs? (yes->prevent):", this.inputs.indexOf(activeElement.tagName.toLocaleLowerCase()) !== -1,
|
||||||
"\nis role = textbox? (yes -> prevent):", activeElement.getAttribute("role") === "textbox",
|
"\nis role = textbox? (yes -> prevent):", activeElement.getAttribute("role") === "textbox",
|
||||||
"\nis type === 'text'? (yes -> prevent):", activeElement.getAttribute("type") === "text",
|
"\nis type === 'text'? (yes -> prevent):", activeElement.getAttribute("type") === "text",
|
||||||
"\nwill the action be prevented? (yes -> prevent)", this.preventAction(),
|
"\nwill the action be prevented? (yes -> prevent)", this.preventAction(),
|
||||||
@ -108,7 +109,7 @@ class ActionHandler {
|
|||||||
|
|
||||||
execAction(actions, event, shortcutIndex) {
|
execAction(actions, event, shortcutIndex) {
|
||||||
if(Debug.debug && Debug.keyboard ){
|
if(Debug.debug && Debug.keyboard ){
|
||||||
console.log("%c[ActionHandler::execAction] Trying to find and execute action for event.: ", "color: #ff0");
|
console.log("%c[ActionHandler::execAction] Trying to find and execute action for event. Actions/event: ", "color: #ff0", actions, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!shortcutIndex) {
|
if (!shortcutIndex) {
|
||||||
@ -123,10 +124,8 @@ class ActionHandler {
|
|||||||
|
|
||||||
for (var cmd of action.cmd) {
|
for (var cmd of action.cmd) {
|
||||||
if (cmd.action === "crop") {
|
if (cmd.action === "crop") {
|
||||||
this.pageInfo.stopArDetection();
|
|
||||||
this.pageInfo.setAr(cmd.arg);
|
this.pageInfo.setAr(cmd.arg);
|
||||||
} else if (cmd.action === "zoom") {
|
} else if (cmd.action === "zoom") {
|
||||||
this.pageInfo.stopArDetection();
|
|
||||||
this.pageInfo.zoomStep(cmd.arg);
|
this.pageInfo.zoomStep(cmd.arg);
|
||||||
} else if (cmd.action === "stretch") {
|
} else if (cmd.action === "stretch") {
|
||||||
this.pageInfo.setStretchMode(cmd.arg);
|
this.pageInfo.setStretchMode(cmd.arg);
|
||||||
@ -145,14 +144,26 @@ class ActionHandler {
|
|||||||
|
|
||||||
handleKeyup(event) {
|
handleKeyup(event) {
|
||||||
if(Debug.debug && Debug.keyboard ){
|
if(Debug.debug && Debug.keyboard ){
|
||||||
console.log("%c[ActionHandler::handleKeyup] we pressed a key: ", "color: #ff0", event.key , " | keydown: ", event.keydown, "event:", event);
|
console.log("%c[ActionHandler::handleKeyup] we pressed a key: ", "color: #ff0", event.key , " | keydown: ", event.keyup, "event:", event);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.preventAction()) {
|
if (this.preventAction()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.execAction(this.keyUpActions, event, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
handleKeydown(event) {
|
||||||
|
if(Debug.debug && Debug.keyboard ){
|
||||||
|
console.log("%c[ActionHandler::handleKeydown] we pressed a key: ", "color: #ff0", event.key , " | keydown: ", event.keydown, "event:", event);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.preventAction()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.execAction(this.keyDownActions, event, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -237,6 +237,12 @@ class PageInfo {
|
|||||||
setAr(ar){
|
setAr(ar){
|
||||||
if(ar !== 'auto') {
|
if(ar !== 'auto') {
|
||||||
this.stopArDetection();
|
this.stopArDetection();
|
||||||
|
} else {
|
||||||
|
for (var vd of this.videos) {
|
||||||
|
vd.resetLastAr();
|
||||||
|
}
|
||||||
|
this.startArDetection();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: find a way to only change aspect ratio for one video
|
// TODO: find a way to only change aspect ratio for one video
|
||||||
|
10
js/uw.js
10
js/uw.js
@ -21,7 +21,7 @@ class UW {
|
|||||||
this.pageInfo = undefined;
|
this.pageInfo = undefined;
|
||||||
this.comms = undefined;
|
this.comms = undefined;
|
||||||
this.settings = undefined;
|
this.settings = undefined;
|
||||||
this.keybinds = undefined;
|
this.actionHandler = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
async init(){
|
async init(){
|
||||||
@ -71,8 +71,12 @@ class UW {
|
|||||||
}
|
}
|
||||||
this.comms.setPageInfo(this.pageInfo);
|
this.comms.setPageInfo(this.pageInfo);
|
||||||
|
|
||||||
this.keybinds = new Keybinds(this.pageInfo);
|
if(Debug.debug) {
|
||||||
this.keybinds.setup();
|
console.log("[uw.js::setup] will try to initate ActionHandler. Settings are:", this.settings, this.settings.active)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.actionHandler = new ActionHandler(this.pageInfo);
|
||||||
|
this.actionHandler.init();
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("[uw::init] FAILED TO START EXTENSION. Error:", e);
|
console.log("[uw::init] FAILED TO START EXTENSION. Error:", e);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "Ultrawidify",
|
"name": "Ultrawidify",
|
||||||
"version": "3.3.0-a1",
|
"version": "3.3.0-a2",
|
||||||
"applications": {
|
"applications": {
|
||||||
"gecko": {
|
"gecko": {
|
||||||
"id": "{cf02b1a7-a01a-4e37-a609-516a283f1ed3}"
|
"id": "{cf02b1a7-a01a-4e37-a609-516a283f1ed3}"
|
||||||
@ -45,7 +45,7 @@
|
|||||||
"js/lib/PlayerData.js",
|
"js/lib/PlayerData.js",
|
||||||
"js/lib/VideoData.js",
|
"js/lib/VideoData.js",
|
||||||
|
|
||||||
"js/conf/Keybinds.js",
|
"js/modules/ActionHandler.js",
|
||||||
|
|
||||||
"js/uw.js" ],
|
"js/uw.js" ],
|
||||||
"all_frames": true
|
"all_frames": true
|
||||||
@ -63,7 +63,7 @@
|
|||||||
"js/lib/ObjectCopy.js",
|
"js/lib/ObjectCopy.js",
|
||||||
"js/lib/Settings.js",
|
"js/lib/Settings.js",
|
||||||
|
|
||||||
"js/conf/Keybinds.js",
|
"js/modules/ActionHandler.js",
|
||||||
|
|
||||||
"js/uw-bg.js"
|
"js/uw-bg.js"
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user