#160 patch opening by notion://url on linux + tab bugfixes

This commit is contained in:
dragonwocky 2020-10-15 12:19:21 +11:00
parent 6a9f9bf79a
commit 4b464ca87c
5 changed files with 23 additions and 16 deletions

View File

@ -18,7 +18,7 @@ module.exports = (store, __exports) => {
document.defaultView.addEventListener('keyup', (event) => { document.defaultView.addEventListener('keyup', (event) => {
// additional hotkeys // additional hotkeys
if (event.code === 'F5') location.reload(); if (event.key === 'F5') location.reload();
// open menu on hotkey toggle // open menu on hotkey toggle
const hotkey = toKeyEvent(store().menu_toggle); const hotkey = toKeyEvent(store().menu_toggle);
let triggered = true; let triggered = true;
@ -49,7 +49,6 @@ module.exports = (store, __exports) => {
triggered = true; triggered = true;
for (let prop in close_tab_keybinding) for (let prop in close_tab_keybinding)
if (close_tab_keybinding[prop] !== event[prop]) triggered = false; if (close_tab_keybinding[prop] !== event[prop]) triggered = false;
console.log(triggered, event);
if (triggered) electron.ipcRenderer.sendToHost('enhancer:close-tab'); if (triggered) electron.ipcRenderer.sendToHost('enhancer:close-tab');
} }
}); });

View File

@ -118,7 +118,7 @@ window['__start'] = async () => {
const $popup = document.querySelector('#popup'); const $popup = document.querySelector('#popup');
document.addEventListener('keyup', (event) => { document.addEventListener('keyup', (event) => {
if (event.code === 'F5') location.reload(); if (event.key === 'F5') location.reload();
// further-configuration popup // further-configuration popup
if ( if (
$popup.classList.contains('visible') && $popup.classList.contains('visible') &&
@ -126,12 +126,13 @@ window['__start'] = async () => {
) )
$popup.classList.remove('visible'); $popup.classList.remove('visible');
// close window on hotkey toggle // close window on hotkey toggle
console.log();
const hotkey = toKeyEvent(coreStore().menu_toggle); const hotkey = toKeyEvent(coreStore().menu_toggle);
let triggered = true; let triggered = true;
for (let prop in hotkey) for (let prop in hotkey)
if (hotkey[prop] !== event[prop]) triggered = false; 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 // focus search
const meta = const meta =
!(event.ctrlKey || event.metaKey) && !event.altKey && !event.shiftKey; !(event.ctrlKey || event.metaKey) && !event.altKey && !event.shiftKey;

View File

@ -108,14 +108,20 @@ module.exports = (store, __exports) => {
document document
.querySelectorAll('.dragged-over') .querySelectorAll('.dragged-over')
.forEach((el) => el.classList.remove('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]), const from = getTab(this.views.tabs[+this.$dragging]),
to = getTab(event.target); to = getTab(event.target);
if (!from[1].classList.contains('new') && from[0] !== to[0]) if (!from[1].classList.contains('new') && from[0] !== to[0])
to[1].parentElement.insertBefore(from[1], to[1]); to[1].parentElement.insertBefore(from[1], to[1]);
from[1].classList.remove('slideIn');
this.$dragging = null; this.$dragging = null;
document
.querySelector('#tabs')
.appendChild(document.querySelector('.tab.new'));
}); });
document.addEventListener('keyup', (event) => { document.addEventListener('keyup', (event) => {
if (!electron.remote.getCurrentWindow().isFocused()) return;
// switch between tabs via key modifier // switch between tabs via key modifier
const select_tab_modifier = toKeyEvent( const select_tab_modifier = toKeyEvent(
store('e1692c29-475e-437b-b7ff-3eee872e1a42').select_modifier store('e1692c29-475e-437b-b7ff-3eee872e1a42').select_modifier
@ -139,8 +145,8 @@ module.exports = (store, __exports) => {
triggered = true; triggered = true;
for (let prop in close_tab_keybinding) for (let prop in close_tab_keybinding)
if (close_tab_keybinding[prop] !== event[prop]) triggered = false; if (close_tab_keybinding[prop] !== event[prop]) triggered = false;
console.log(triggered, event); if (triggered && document.querySelector('.tab.current .close'))
if (triggered) this.closeTab(this.views.current.id); document.querySelector('.tab.current .close').click();
}); });
} }
@ -219,7 +225,7 @@ module.exports = (store, __exports) => {
? idToNotionURL(store().default_page) ? idToNotionURL(store().default_page)
: this.views.current.$el().src : 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(); this.newTab();
break; break;
case 'enhancer:close-tab': case 'enhancer:close-tab':
if (event.target.id == this.views.current.id) if (document.querySelector('.tab.current .close'))
this.closeTab(+event.target.id); document.querySelector('.tab.current .close').click();
break; break;
} }
} }

0
repo/core/systemMenu.js Normal file
View File

View File

@ -33,7 +33,7 @@ module.exports = (store, __exports) => {
// menu // menu
electron.ipcMain.on('enhancer:open-menu', (event, arg) => { electron.ipcMain.on('enhancer:open-menu', (event, arg) => {
openExtensionMenu(); openEnhancerMenu();
}); });
electron.ipcMain.on('enhancer:set-menu-theme', (event, arg) => { electron.ipcMain.on('enhancer:set-menu-theme', (event, arg) => {
if (!enhancer_menu) return; if (!enhancer_menu) return;
@ -81,13 +81,13 @@ module.exports = (store, __exports) => {
}; };
} }
function openExtensionMenu() { function openEnhancerMenu() {
if (enhancer_menu) return enhancer_menu.show(); if (enhancer_menu) return enhancer_menu.show();
const window_state = require(`${helpers.__notion.replace( const window_state = require(`${helpers.__notion.replace(
/\\/g, /\\/g,
'/' '/'
)}/app/node_modules/electron-window-state/index.js`)({ )}/app/node_modules/electron-window-state/index.js`)({
file: 'menu-windowstate.json', file: 'enhancerMenu.windowState.json',
path: helpers.__data, path: helpers.__data,
defaultWidth: 275, defaultWidth: 275,
defaultHeight: 600, defaultHeight: 600,
@ -106,7 +106,7 @@ module.exports = (store, __exports) => {
width: window_state.width, width: window_state.width,
height: window_state.height, height: window_state.height,
webPreferences: { webPreferences: {
preload: path.resolve(`${__dirname}/menu.js`), preload: path.resolve(`${__dirname}/enhancerMenu.js`),
nodeIntegration: true, nodeIntegration: true,
session: electron.session.fromPartition('persist:notion'), session: electron.session.fromPartition('persist:notion'),
}, },
@ -116,6 +116,7 @@ module.exports = (store, __exports) => {
window_state.saveState(enhancer_menu); window_state.saveState(enhancer_menu);
enhancer_menu = null; enhancer_menu = null;
}); });
// enhancer_menu.webContents.openDevTools();
} }
// tray // tray
@ -165,7 +166,7 @@ module.exports = (store, __exports) => {
type: 'normal', type: 'normal',
label: 'Enhancements', label: 'Enhancements',
accelerator: store().menu_toggle, accelerator: store().menu_toggle,
click: openExtensionMenu, click: openEnhancerMenu,
}, },
{ {
type: 'normal', type: 'normal',