diff options
| author | Akshay Nair <phenax5@gmail.com> | 2024-08-25 17:06:50 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2024-08-25 17:16:25 +0530 |
| commit | 0d0e62aedf8bfd8393f5ad17e369a95ddc12137f (patch) | |
| tree | 92d56a5ab7825dd8f465f6b7e1ab10ba9c565f2c /modules/firefox.home/chrome/globalKeybindings.uc.js | |
| parent | d1c6524ad7f1a805b2a2b0394df2b8cbb286d3e8 (diff) | |
| download | nixos-config-0d0e62aedf8bfd8393f5ad17e369a95ddc12137f.tar.gz nixos-config-0d0e62aedf8bfd8393f5ad17e369a95ddc12137f.zip | |
firefox: Add private browsing indicator + move passthru indicator
Diffstat (limited to 'modules/firefox.home/chrome/globalKeybindings.uc.js')
| -rw-r--r-- | modules/firefox.home/chrome/globalKeybindings.uc.js | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/modules/firefox.home/chrome/globalKeybindings.uc.js b/modules/firefox.home/chrome/globalKeybindings.uc.js index 1ff868c..4ad35da 100644 --- a/modules/firefox.home/chrome/globalKeybindings.uc.js +++ b/modules/firefox.home/chrome/globalKeybindings.uc.js @@ -41,10 +41,21 @@ const togglePassthrough = () => () => UC.globalKeybindings.updateMode(m => m !== MODE_PASSTHRU ? MODE_PASSTHRU : MODE_NORMAL) const sidetabs = { - getExtensionId: () => [...SidebarController.sidebars].find(([_, p]) => p.label?.match(/sidetabs/i))?.[0], - ensureOpen: () => !SidebarController.isOpen && SidebarController.show(sidetabs.getExtensionId() ?? undefined), - toggle: () => () => { - sidetabs.ensureOpen(); + getExtensionId: () => { + return [...SidebarController.sidebars].find(([_, p]) => p.label?.match(/sidetabs/i))?.[0]; + }, + ensureReady: async () => { + for (let i = 0; i < 3; i++) { + if (sidetabs.getExtensionId()) { + return !SidebarController.isOpen && SidebarController.show(sidetabs.getExtensionId() ?? undefined) + } else { + console.log('sidebar retry...'); + await new Promise(res => setTimeout(res), 100); + } + } + }, + toggle: () => async () => { + await sidetabs.ensureReady(); const sidebar = document.getElementById('sidebar-box'); sidebar?.classList.toggle('open'); }, @@ -97,17 +108,18 @@ updateMode: f => { module.mode = f(module.mode); - gBrowser.tabContainer.dataset.keyMode = module.mode + if (gNavToolbox) gNavToolbox.dataset.keyMode = module.mode; + Services.obs.notifyObservers(null, 'uc:globalKeybindings:modeChanged', module.mode); }, handleKeyUpEvent: e => module.evaluateKeybindings(module.keybindings.RELEASE, e), handleKeyDownEvent: e => module.evaluateKeybindings(module.keybindings.PRESS, e), - onWindowReady: (win) => { + onWindowReady: async (win) => { win.addEventListener('keyup', module.handleKeyUpEvent, true); win.addEventListener('keydown', module.handleKeyDownEvent, true); - sidetabs.ensureOpen(); + await sidetabs.ensureReady(); }, init(win) { |
