mirror of
https://github.com/zen-browser/components.git
synced 2025-07-08 16:19:58 +02:00
Refactor ZenKeyboardShortcuts to handle platform-specific key modifiers consistently
This commit is contained in:
parent
59d8bdec89
commit
b991b42402
1 changed files with 16 additions and 10 deletions
|
@ -792,6 +792,10 @@ var gZenKeyboardShortcutsManager = {
|
||||||
// This is because other browser-sets needs this element and the JS event
|
// This is because other browser-sets needs this element and the JS event
|
||||||
// handled wont wait for the async function to finish.
|
// handled wont wait for the async function to finish.
|
||||||
void(this.getZenKeyset());
|
void(this.getZenKeyset());
|
||||||
|
|
||||||
|
this._hasCleared = Services.prefs.getBoolPref('zen.keyboard.shortcuts.disable-mainkeyset-clear', false);
|
||||||
|
|
||||||
|
window.addEventListener('DOMContentLoaded', this.init.bind(this), { once: true });
|
||||||
},
|
},
|
||||||
|
|
||||||
async init() {
|
async init() {
|
||||||
|
@ -832,23 +836,27 @@ var gZenKeyboardShortcutsManager = {
|
||||||
},
|
},
|
||||||
|
|
||||||
getZenKeyset(browser = window) {
|
getZenKeyset(browser = window) {
|
||||||
if (!this._zenKeyset) {
|
if (!browser.gZenKeyboardShortcutsManager._zenKeyset) {
|
||||||
const existingKeyset = browser.document.getElementById(ZEN_KEYSET_ID);
|
const existingKeyset = browser.document.getElementById(ZEN_KEYSET_ID);
|
||||||
if (existingKeyset) {
|
if (existingKeyset) {
|
||||||
this._zenKeyset = existingKeyset;
|
browser.gZenKeyboardShortcutsManager._zenKeyset = existingKeyset;
|
||||||
return this._zenKeyset;
|
return browser.gZenKeyboardShortcutsManager._zenKeyset;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._zenKeyset = browser.document.createXULElement('keyset');
|
browser.gZenKeyboardShortcutsManager._zenKeyset = browser.document.createXULElement('keyset');
|
||||||
this._zenKeyset.id = ZEN_KEYSET_ID;
|
browser.gZenKeyboardShortcutsManager._zenKeyset.id = ZEN_KEYSET_ID;
|
||||||
|
|
||||||
const mainKeyset = browser.document.getElementById(ZEN_MAIN_KEYSET_ID);
|
const mainKeyset = browser.document.getElementById(ZEN_MAIN_KEYSET_ID);
|
||||||
mainKeyset.after(this._zenKeyset);
|
mainKeyset.after(browser.gZenKeyboardShortcutsManager._zenKeyset);
|
||||||
}
|
}
|
||||||
return this._zenKeyset;
|
return browser.gZenKeyboardShortcutsManager._zenKeyset;
|
||||||
},
|
},
|
||||||
|
|
||||||
clearMainKeyset(element) {
|
clearMainKeyset(element) {
|
||||||
|
if (this._hasCleared) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this._hasCleared = true;
|
||||||
const children = element.children;
|
const children = element.children;
|
||||||
for (let i = children.length - 1; i >= 0; i--) {
|
for (let i = children.length - 1; i >= 0; i--) {
|
||||||
const key = children[i];
|
const key = children[i];
|
||||||
|
@ -865,7 +873,7 @@ var gZenKeyboardShortcutsManager = {
|
||||||
if (!mainKeyset) {
|
if (!mainKeyset) {
|
||||||
throw new Error('Main keyset not found');
|
throw new Error('Main keyset not found');
|
||||||
}
|
}
|
||||||
this.clearMainKeyset(mainKeyset);
|
browser.gZenKeyboardShortcutsManager.clearMainKeyset(mainKeyset);
|
||||||
|
|
||||||
const keyset = this.getZenKeyset(browser);
|
const keyset = this.getZenKeyset(browser);
|
||||||
keyset.innerHTML = '';
|
keyset.innerHTML = '';
|
||||||
|
@ -962,7 +970,5 @@ var gZenKeyboardShortcutsManager = {
|
||||||
document.addEventListener("MozBeforeInitialXULLayout", () => {
|
document.addEventListener("MozBeforeInitialXULLayout", () => {
|
||||||
if (Services.prefs.getBoolPref('zen.keyboard.shortcuts.enabled', false)) {
|
if (Services.prefs.getBoolPref('zen.keyboard.shortcuts.enabled', false)) {
|
||||||
gZenKeyboardShortcutsManager.beforeInit();
|
gZenKeyboardShortcutsManager.beforeInit();
|
||||||
// Async init
|
|
||||||
gZenKeyboardShortcutsManager.init();
|
|
||||||
}
|
}
|
||||||
}, { once: true });
|
}, { once: true });
|
Loading…
Add table
Add a link
Reference in a new issue