From 4b464ca87c6749209206bf755bececf97de97998 Mon Sep 17 00:00:00 2001 From: dragonwocky Date: Thu, 15 Oct 2020 12:19:21 +1100 Subject: [PATCH] #160 patch opening by notion://url on linux + tab bugfixes --- repo/core/client.js | 3 +-- repo/core/{menu.js => enhancerMenu.js} | 7 ++++--- repo/core/render.js | 18 ++++++++++++------ repo/core/systemMenu.js | 0 repo/core/tray.js | 11 ++++++----- 5 files changed, 23 insertions(+), 16 deletions(-) rename repo/core/{menu.js => enhancerMenu.js} (98%) create mode 100644 repo/core/systemMenu.js diff --git a/repo/core/client.js b/repo/core/client.js index 7edcc75..f1cabbb 100644 --- a/repo/core/client.js +++ b/repo/core/client.js @@ -18,7 +18,7 @@ module.exports = (store, __exports) => { document.defaultView.addEventListener('keyup', (event) => { // additional hotkeys - if (event.code === 'F5') location.reload(); + if (event.key === 'F5') location.reload(); // open menu on hotkey toggle const hotkey = toKeyEvent(store().menu_toggle); let triggered = true; @@ -49,7 +49,6 @@ module.exports = (store, __exports) => { triggered = true; for (let prop in close_tab_keybinding) if (close_tab_keybinding[prop] !== event[prop]) triggered = false; - console.log(triggered, event); if (triggered) electron.ipcRenderer.sendToHost('enhancer:close-tab'); } }); diff --git a/repo/core/menu.js b/repo/core/enhancerMenu.js similarity index 98% rename from repo/core/menu.js rename to repo/core/enhancerMenu.js index 60a0d20..7a4829d 100644 --- a/repo/core/menu.js +++ b/repo/core/enhancerMenu.js @@ -118,7 +118,7 @@ window['__start'] = async () => { const $popup = document.querySelector('#popup'); document.addEventListener('keyup', (event) => { - if (event.code === 'F5') location.reload(); + if (event.key === 'F5') location.reload(); // further-configuration popup if ( $popup.classList.contains('visible') && @@ -126,12 +126,13 @@ window['__start'] = async () => { ) $popup.classList.remove('visible'); // close window on hotkey toggle - console.log(); const hotkey = toKeyEvent(coreStore().menu_toggle); let triggered = true; for (let prop in hotkey) if (hotkey[prop] !== event[prop]) triggered = false; - if (triggered) electron.remote.getCurrentWindow().close(); + if (triggered || ((event.ctrlKey || event.metaKey) && event.key === 'w')) + electron.remote.getCurrentWindow().close(); + console.log(event.ctrlKey, event.key); // focus search const meta = !(event.ctrlKey || event.metaKey) && !event.altKey && !event.shiftKey; diff --git a/repo/core/render.js b/repo/core/render.js index 085ecc3..d21d8df 100644 --- a/repo/core/render.js +++ b/repo/core/render.js @@ -108,14 +108,20 @@ module.exports = (store, __exports) => { document .querySelectorAll('.dragged-over') .forEach((el) => el.classList.remove('dragged-over')); + document + .querySelectorAll('.slideIn') + .forEach((el) => el.classList.remove('slideIn')); const from = getTab(this.views.tabs[+this.$dragging]), to = getTab(event.target); if (!from[1].classList.contains('new') && from[0] !== to[0]) to[1].parentElement.insertBefore(from[1], to[1]); - from[1].classList.remove('slideIn'); this.$dragging = null; + document + .querySelector('#tabs') + .appendChild(document.querySelector('.tab.new')); }); document.addEventListener('keyup', (event) => { + if (!electron.remote.getCurrentWindow().isFocused()) return; // switch between tabs via key modifier const select_tab_modifier = toKeyEvent( store('e1692c29-475e-437b-b7ff-3eee872e1a42').select_modifier @@ -139,8 +145,8 @@ module.exports = (store, __exports) => { triggered = true; for (let prop in close_tab_keybinding) if (close_tab_keybinding[prop] !== event[prop]) triggered = false; - console.log(triggered, event); - if (triggered) this.closeTab(this.views.current.id); + if (triggered && document.querySelector('.tab.current .close')) + document.querySelector('.tab.current .close').click(); }); } @@ -219,7 +225,7 @@ module.exports = (store, __exports) => { ? idToNotionURL(store().default_page) : this.views.current.$el().src ); - this.views.html[id].getWebContents().openDevTools(); + // this.views.html[id].getWebContents().openDevTools(); } }); } @@ -297,8 +303,8 @@ module.exports = (store, __exports) => { this.newTab(); break; case 'enhancer:close-tab': - if (event.target.id == this.views.current.id) - this.closeTab(+event.target.id); + if (document.querySelector('.tab.current .close')) + document.querySelector('.tab.current .close').click(); break; } } diff --git a/repo/core/systemMenu.js b/repo/core/systemMenu.js new file mode 100644 index 0000000..e69de29 diff --git a/repo/core/tray.js b/repo/core/tray.js index 0fd4c04..cbd62d4 100644 --- a/repo/core/tray.js +++ b/repo/core/tray.js @@ -33,7 +33,7 @@ module.exports = (store, __exports) => { // menu electron.ipcMain.on('enhancer:open-menu', (event, arg) => { - openExtensionMenu(); + openEnhancerMenu(); }); electron.ipcMain.on('enhancer:set-menu-theme', (event, arg) => { if (!enhancer_menu) return; @@ -81,13 +81,13 @@ module.exports = (store, __exports) => { }; } - function openExtensionMenu() { + function openEnhancerMenu() { if (enhancer_menu) return enhancer_menu.show(); const window_state = require(`${helpers.__notion.replace( /\\/g, '/' )}/app/node_modules/electron-window-state/index.js`)({ - file: 'menu-windowstate.json', + file: 'enhancerMenu.windowState.json', path: helpers.__data, defaultWidth: 275, defaultHeight: 600, @@ -106,7 +106,7 @@ module.exports = (store, __exports) => { width: window_state.width, height: window_state.height, webPreferences: { - preload: path.resolve(`${__dirname}/menu.js`), + preload: path.resolve(`${__dirname}/enhancerMenu.js`), nodeIntegration: true, session: electron.session.fromPartition('persist:notion'), }, @@ -116,6 +116,7 @@ module.exports = (store, __exports) => { window_state.saveState(enhancer_menu); enhancer_menu = null; }); + // enhancer_menu.webContents.openDevTools(); } // tray @@ -165,7 +166,7 @@ module.exports = (store, __exports) => { type: 'normal', label: 'Enhancements', accelerator: store().menu_toggle, - click: openExtensionMenu, + click: openEnhancerMenu, }, { type: 'normal',