Add ability to disable website keybindings for show/hide controller

This commit is contained in:
Timothy Lim
2019-10-11 17:29:55 +08:00
parent 5641369385
commit 823a24475c
3 changed files with 15 additions and 0 deletions

View File

@@ -6,6 +6,7 @@
speeds: {}, // empty object to hold speed for each source speeds: {}, // empty object to hold speed for each source
displayKeyCode: 86, // default: V displayKeyCode: 86, // default: V
displayForce: false,
rememberSpeed: false, // default: false rememberSpeed: false, // default: false
audioBoolean: false, // default: false audioBoolean: false, // default: false
startHidden: false, // default: false startHidden: false, // default: false
@@ -74,6 +75,7 @@
keyBindings: tc.settings.keyBindings, keyBindings: tc.settings.keyBindings,
version: tc.settings.version, version: tc.settings.version,
displayKeyCode: tc.settings.displayKeyCode, displayKeyCode: tc.settings.displayKeyCode,
displayForce: tc.settings.displayForce,
rememberSpeed: tc.settings.rememberSpeed, rememberSpeed: tc.settings.rememberSpeed,
audioBoolean: tc.settings.audioBoolean, audioBoolean: tc.settings.audioBoolean,
startHidden: tc.settings.startHidden, startHidden: tc.settings.startHidden,
@@ -83,6 +85,7 @@
} }
tc.settings.lastSpeed = Number(storage.lastSpeed); tc.settings.lastSpeed = Number(storage.lastSpeed);
tc.settings.displayKeyCode = Number(storage.displayKeyCode); tc.settings.displayKeyCode = Number(storage.displayKeyCode);
tc.settings.displayForce = String(storage.displayForce);
tc.settings.rememberSpeed = Boolean(storage.rememberSpeed); tc.settings.rememberSpeed = Boolean(storage.rememberSpeed);
tc.settings.audioBoolean = Boolean(storage.audioBoolean); tc.settings.audioBoolean = Boolean(storage.audioBoolean);
tc.settings.startHidden = Boolean(storage.startHidden); tc.settings.startHidden = Boolean(storage.startHidden);
@@ -360,6 +363,10 @@
if (keyCode == tc.settings.displayKeyCode) { if (keyCode == tc.settings.displayKeyCode) {
runAction('display', document, true) runAction('display', document, true)
if (tc.settings.displayForce === "true") {// disable websites key bindings
event.preventDefault();
event.stopPropagation();
}
} }
var item = tc.settings.keyBindings.find(item => item.key === keyCode); var item = tc.settings.keyBindings.find(item => item.key === keyCode);
if (item) { if (item) {

View File

@@ -15,6 +15,10 @@
<div class="row"> <div class="row">
<label for="displayKeyInput">Show/hide controller</label> <label for="displayKeyInput">Show/hide controller</label>
<input id="displayKeyInput" placeholder="press a key" type="text" value=""/> <input id="displayKeyInput" placeholder="press a key" type="text" value=""/>
<select class="customForce" id="displayForce">
<option value="false">Do not disable website key bindings</option>
<option value="true">Disable websites key bindings</option>
</select>
</div> </div>
<div class="row customs" id="slower"> <div class="row customs" id="slower">
<select class="customDo"> <select class="customDo">

View File

@@ -3,6 +3,7 @@ var regStrip=/^[\r\t\f\v ]+|[\r\t\f\v ]+$/gm;
var tcDefaults = { var tcDefaults = {
speed: 1.0, // default: speed: 1.0, // default:
displayKeyCode: 86, // default: V displayKeyCode: 86, // default: V
displayForce: false,
rememberSpeed: false, // default: false rememberSpeed: false, // default: false
audioBoolean: false, // default: false audioBoolean: false, // default: false
startHidden: false, // default: false startHidden: false, // default: false
@@ -150,6 +151,7 @@ function save_options() {
Array.from(document.querySelectorAll(".customs")).forEach(item => createKeyBindings(item)); // Remove added shortcuts Array.from(document.querySelectorAll(".customs")).forEach(item => createKeyBindings(item)); // Remove added shortcuts
var displayKeyCode = document.getElementById('displayKeyInput').keyCode; var displayKeyCode = document.getElementById('displayKeyInput').keyCode;
var displayForce = document.getElementById('displayForce').value;
var rememberSpeed = document.getElementById('rememberSpeed').checked; var rememberSpeed = document.getElementById('rememberSpeed').checked;
var audioBoolean = document.getElementById('audioBoolean').checked; var audioBoolean = document.getElementById('audioBoolean').checked;
var startHidden = document.getElementById('startHidden').checked; var startHidden = document.getElementById('startHidden').checked;
@@ -161,6 +163,7 @@ function save_options() {
chrome.storage.sync.remove(["resetSpeed", "speedStep", "fastSpeed", "rewindTime", "advanceTime", "resetKeyCode", "slowerKeyCode", "fasterKeyCode", "rewindKeyCode", "advanceKeyCode", "fastKeyCode"]); chrome.storage.sync.remove(["resetSpeed", "speedStep", "fastSpeed", "rewindTime", "advanceTime", "resetKeyCode", "slowerKeyCode", "fasterKeyCode", "rewindKeyCode", "advanceKeyCode", "fastKeyCode"]);
chrome.storage.sync.set({ chrome.storage.sync.set({
displayKeyCode: displayKeyCode, displayKeyCode: displayKeyCode,
displayForce: displayForce,
rememberSpeed: rememberSpeed, rememberSpeed: rememberSpeed,
audioBoolean: audioBoolean, audioBoolean: audioBoolean,
startHidden: startHidden, startHidden: startHidden,
@@ -181,6 +184,7 @@ function save_options() {
function restore_options() { function restore_options() {
chrome.storage.sync.get(tcDefaults, function(storage) { chrome.storage.sync.get(tcDefaults, function(storage) {
updateShortcutInputText('displayKeyInput', storage.displayKeyCode); updateShortcutInputText('displayKeyInput', storage.displayKeyCode);
document.getElementById('displayForce').value = storage.displayForce;
document.getElementById('rememberSpeed').checked = storage.rememberSpeed; document.getElementById('rememberSpeed').checked = storage.rememberSpeed;
document.getElementById('audioBoolean').checked = storage.audioBoolean; document.getElementById('audioBoolean').checked = storage.audioBoolean;
document.getElementById('startHidden').checked = storage.startHidden; document.getElementById('startHidden').checked = storage.startHidden;