mirror of
https://github.com/notion-enhancer/notion-enhancer.git
synced 2025-04-19 19:19:03 +00:00
add select_modifier option and add resize event to fix bugs
This commit is contained in:
parent
ad74a4cd29
commit
c6a087b627
@ -17,23 +17,11 @@ module.exports = {
|
|||||||
author: 'SP12893678',
|
author: 'SP12893678',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
key: 'showUI',
|
key: 'show_ui',
|
||||||
label: 'show scale ui',
|
label: 'show scale ui',
|
||||||
type: 'toggle',
|
type: 'toggle',
|
||||||
value: true,
|
value: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
key: 'canMouseWheel',
|
|
||||||
label: 'use mouse wheel to scale',
|
|
||||||
type: 'toggle',
|
|
||||||
value: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'canHotkey',
|
|
||||||
label: 'use keyboard hotkey to scale',
|
|
||||||
type: 'toggle',
|
|
||||||
value: true,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
key: 'offset',
|
key: 'offset',
|
||||||
label: 'set scale plus and minus offset',
|
label: 'set scale plus and minus offset',
|
||||||
@ -45,7 +33,41 @@ module.exports = {
|
|||||||
label: 'set scale default value',
|
label: 'set scale default value',
|
||||||
type: 'input',
|
type: 'input',
|
||||||
value: 100,
|
value: 100,
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
key: 'can_hotkey',
|
||||||
|
label: 'use keyboard hotkey to scale',
|
||||||
|
type: 'toggle',
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'keyboard_select_modifier',
|
||||||
|
label:
|
||||||
|
'keyboard hotkey select modifier',
|
||||||
|
type: 'select',
|
||||||
|
value: [
|
||||||
|
'Control',
|
||||||
|
'Alt',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'can_mouse_wheel',
|
||||||
|
label: 'use mouse wheel to scale',
|
||||||
|
type: 'toggle',
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'mouse_wheel_select_modifier',
|
||||||
|
label:
|
||||||
|
'mouse wheel select modifier',
|
||||||
|
type: 'select',
|
||||||
|
value: [
|
||||||
|
'Control',
|
||||||
|
'Alt',
|
||||||
|
'Command',
|
||||||
|
'Shift',
|
||||||
|
],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
hacks: {
|
hacks: {
|
||||||
'renderer/preload.js'(store, __exports) {
|
'renderer/preload.js'(store, __exports) {
|
||||||
@ -70,15 +92,9 @@ module.exports = {
|
|||||||
const $scaleView = createElement('<div class="notion-scale-view">100%</div>');
|
const $scaleView = createElement('<div class="notion-scale-view">100%</div>');
|
||||||
const $scaleMinusButton = createElement('<div class="notion-scale-button">-</div>');
|
const $scaleMinusButton = createElement('<div class="notion-scale-button">-</div>');
|
||||||
|
|
||||||
if(store().showUI){
|
if(store().show_ui){
|
||||||
$scalePlusButton.addEventListener('click',()=>{
|
$scalePlusButton.addEventListener('click',()=> zoomPlus())
|
||||||
zoomPlus()
|
$scaleMinusButton.addEventListener('click',()=> zoomMinus())
|
||||||
if(store().showUI) changeScaleViewUIValue()
|
|
||||||
})
|
|
||||||
$scaleMinusButton.addEventListener('click',()=>{
|
|
||||||
zoomMinus()
|
|
||||||
if(store().showUI) changeScaleViewUIValue()
|
|
||||||
})
|
|
||||||
|
|
||||||
$scaleSet.append($scalePlusButton)
|
$scaleSet.append($scalePlusButton)
|
||||||
$scaleSet.append($scaleView)
|
$scaleSet.append($scaleView)
|
||||||
@ -88,37 +104,30 @@ module.exports = {
|
|||||||
|
|
||||||
changeScaleViewUIValue()
|
changeScaleViewUIValue()
|
||||||
}
|
}
|
||||||
if(store().canMouseWheel){
|
|
||||||
document.defaultView.addEventListener('wheel', (event)=>{
|
|
||||||
if (event.ctrlKey && event.deltaY < 0){
|
|
||||||
zoomPlus()
|
|
||||||
if(store().showUI) changeScaleViewUIValue()
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.ctrlKey && event.deltaY > 0){
|
if(store().can_mouse_wheel){
|
||||||
zoomMinus()
|
document.defaultView.addEventListener('wheel', (event)=>{
|
||||||
if(store().showUI) changeScaleViewUIValue()
|
let key = getSelectModifierInKeyBoradKey(store().mouse_wheel_select_modifier)
|
||||||
}
|
if (event[key] && event.deltaY < 0) zoomPlus()
|
||||||
|
if (event[key] && event.deltaY > 0) zoomMinus()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(store().canHotkey){
|
if(store().can_hotkey){
|
||||||
document.defaultView.addEventListener('keydown', (event) => {
|
document.defaultView.addEventListener('keyup', (event) => {
|
||||||
if (event.key == '+' && event.ctrlKey){
|
let key = getSelectModifierInKeyBoradKey(store().keyboard_select_modifier)
|
||||||
zoomPlus()
|
if (event[key] && event.key == '+') zoomPlus()
|
||||||
if(store().showUI) changeScaleViewUIValue()
|
if (event[key] && event.key == '-') zoomMinus()
|
||||||
}
|
|
||||||
|
|
||||||
if (event.key == '-' && event.ctrlKey){
|
|
||||||
zoomMinus()
|
|
||||||
if(store().showUI) changeScaleViewUIValue()
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
document.defaultView.addEventListener('resize',(event) =>{
|
||||||
|
zoom = electron.webFrame.getZoomFactor()
|
||||||
|
if(store().show_ui) changeScaleViewUIValue()
|
||||||
|
});
|
||||||
|
|
||||||
const observer = new MutationObserver((list, observer) => {
|
const observer = new MutationObserver((list, observer) => {
|
||||||
electron.webFrame.setZoomFactor(zoom)
|
electron.webFrame.setZoomFactor(zoom)
|
||||||
if(store().showUI) changeScaleViewUIValue()
|
|
||||||
});
|
});
|
||||||
|
|
||||||
observer.observe(document.querySelector('.notion-frame'), {
|
observer.observe(document.querySelector('.notion-frame'), {
|
||||||
@ -126,12 +135,14 @@ module.exports = {
|
|||||||
});
|
});
|
||||||
|
|
||||||
function zoomPlus() {
|
function zoomPlus() {
|
||||||
|
zoom = electron.webFrame.getZoomFactor()
|
||||||
if(zoom + offset > maxZoom) return
|
if(zoom + offset > maxZoom) return
|
||||||
zoom += offset
|
zoom += offset
|
||||||
electron.webFrame.setZoomFactor(zoom)
|
electron.webFrame.setZoomFactor(zoom)
|
||||||
}
|
}
|
||||||
|
|
||||||
function zoomMinus() {
|
function zoomMinus() {
|
||||||
|
zoom = electron.webFrame.getZoomFactor()
|
||||||
if(zoom + offset < minZoom) return
|
if(zoom + offset < minZoom) return
|
||||||
zoom -= offset
|
zoom -= offset
|
||||||
electron.webFrame.setZoomFactor(zoom)
|
electron.webFrame.setZoomFactor(zoom)
|
||||||
@ -140,6 +151,27 @@ module.exports = {
|
|||||||
function changeScaleViewUIValue() {
|
function changeScaleViewUIValue() {
|
||||||
$scaleView.innerHTML = Math.round(zoom * 100) + "%"
|
$scaleView.innerHTML = Math.round(zoom * 100) + "%"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getSelectModifierInKeyBoradKey(select_modifier) {
|
||||||
|
let key = 'ctrlKey'
|
||||||
|
switch (select_modifier) {
|
||||||
|
case 'Control':
|
||||||
|
key = 'ctrlKey'
|
||||||
|
break;
|
||||||
|
case 'Alt':
|
||||||
|
key = 'altKey'
|
||||||
|
break;
|
||||||
|
case 'Command':
|
||||||
|
key = 'metaKey'
|
||||||
|
break;
|
||||||
|
case 'Shift':
|
||||||
|
key = 'shiftKey'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return key
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user