FF: register hotkeys on startup; reset if empty

This commit is contained in:
tophf 2018-04-13 14:30:36 +03:00
parent 5bc6ce33be
commit 32f05861e3
2 changed files with 21 additions and 6 deletions

View File

@ -299,6 +299,21 @@ var prefs = new function Prefs() {
});
});
// register hotkeys
if (FIREFOX && (browser.commands || {}).update) {
const hotkeyPrefs = Object.keys(values).filter(k => k.startsWith('hotkey.'));
this.subscribe(hotkeyPrefs, (name, value) => {
try {
name = name.split('.')[1];
if (value.trim()) {
browser.commands.update({name, shortcut: value}).catch(ignoreChromeError);
} else {
browser.commands.reset(name).catch(ignoreChromeError);
}
} catch (e) {}
});
}
return;
function doBroadcast() {

View File

@ -159,6 +159,7 @@ function customizeHotkeys() {
$create('td',
$create('input', {
id: 'hotkey.' + cmd,
type: 'search',
//placeholder: t('helpKeyMapHotkey'),
})),
]))),
@ -181,16 +182,15 @@ function customizeHotkeys() {
});
function onInput() {
const hotkey = this.value.trim();
if (!hotkey) {
const name = this.id.split('.')[1];
const shortcut = this.value.trim();
if (!shortcut) {
browser.commands.reset(name).catch(ignoreChromeError);
this.setCustomValidity('');
return;
}
try {
browser.commands.update({
name: this.id.split('.')[1],
shortcut: hotkey,
}).then(
browser.commands.update({name, shortcut}).then(
() => this.setCustomValidity(''),
err => this.setCustomValidity(err)
);