@lvce-editor/main-process 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mainProcessMain.js +72 -3
- package/package.json +1 -1
package/dist/mainProcessMain.js
CHANGED
|
@@ -4758,18 +4758,87 @@ const getWindowById = windowId => {
|
|
|
4758
4758
|
return Electron.BrowserWindow.fromId(windowId);
|
|
4759
4759
|
};
|
|
4760
4760
|
|
|
4761
|
-
const
|
|
4761
|
+
const devtoolsBeforeInputListeners = new WeakMap();
|
|
4762
|
+
const isToggleDevtoolsInput = input => {
|
|
4763
|
+
if (input.type !== 'keyDown') {
|
|
4764
|
+
return false;
|
|
4765
|
+
}
|
|
4766
|
+
if (!input.shift) {
|
|
4767
|
+
return false;
|
|
4768
|
+
}
|
|
4769
|
+
if (!input.control && !input.meta) {
|
|
4770
|
+
return false;
|
|
4771
|
+
}
|
|
4772
|
+
return input.code === 'KeyI' || input.key === 'I' || input.key === 'i';
|
|
4773
|
+
};
|
|
4774
|
+
const removeDevtoolsKeyListener = devtoolsWebContents => {
|
|
4775
|
+
const listener = devtoolsBeforeInputListeners.get(devtoolsWebContents);
|
|
4776
|
+
if (!listener) {
|
|
4777
|
+
return;
|
|
4778
|
+
}
|
|
4779
|
+
devtoolsBeforeInputListeners.delete(devtoolsWebContents);
|
|
4780
|
+
devtoolsWebContents.off('before-input-event', listener);
|
|
4781
|
+
};
|
|
4782
|
+
const attachDevtoolsKeyListener = browserWindow => {
|
|
4783
|
+
const devtoolsWebContents = browserWindow.webContents.devToolsWebContents;
|
|
4784
|
+
if (!devtoolsWebContents) {
|
|
4785
|
+
return;
|
|
4786
|
+
}
|
|
4787
|
+
if (devtoolsBeforeInputListeners.has(devtoolsWebContents)) {
|
|
4788
|
+
return;
|
|
4789
|
+
}
|
|
4790
|
+
const listener = (event, input) => {
|
|
4791
|
+
if (!isToggleDevtoolsInput(input)) {
|
|
4792
|
+
return;
|
|
4793
|
+
}
|
|
4794
|
+
event.preventDefault();
|
|
4795
|
+
browserWindow.webContents.closeDevTools();
|
|
4796
|
+
};
|
|
4797
|
+
devtoolsBeforeInputListeners.set(devtoolsWebContents, listener);
|
|
4798
|
+
devtoolsWebContents.on('before-input-event', listener);
|
|
4799
|
+
devtoolsWebContents.once('destroyed', () => {
|
|
4800
|
+
removeDevtoolsKeyListener(devtoolsWebContents);
|
|
4801
|
+
});
|
|
4802
|
+
browserWindow.webContents.once('devtools-closed', () => {
|
|
4803
|
+
removeDevtoolsKeyListener(devtoolsWebContents);
|
|
4804
|
+
});
|
|
4805
|
+
};
|
|
4806
|
+
const getBrowserWindow = browserWindowId => {
|
|
4762
4807
|
const browserWindow = getWindowById(browserWindowId);
|
|
4763
4808
|
if (!browserWindow) {
|
|
4764
4809
|
info(`[main-process] browser window not found ${browserWindow}`);
|
|
4810
|
+
return undefined;
|
|
4811
|
+
}
|
|
4812
|
+
return browserWindow;
|
|
4813
|
+
};
|
|
4814
|
+
const toggleDevtools = browserWindow => {
|
|
4815
|
+
if (browserWindow.webContents.isDevToolsOpened()) {
|
|
4816
|
+
browserWindow.webContents.closeDevTools();
|
|
4817
|
+
return;
|
|
4818
|
+
}
|
|
4819
|
+
if (browserWindow.webContents.devToolsWebContents) {
|
|
4820
|
+
attachDevtoolsKeyListener(browserWindow);
|
|
4821
|
+
} else {
|
|
4822
|
+
browserWindow.webContents.once('devtools-opened', () => {
|
|
4823
|
+
attachDevtoolsKeyListener(browserWindow);
|
|
4824
|
+
});
|
|
4825
|
+
}
|
|
4826
|
+
browserWindow.webContents.openDevTools();
|
|
4827
|
+
};
|
|
4828
|
+
const executeWindowFunction = (browserWindowId, key) => {
|
|
4829
|
+
const browserWindow = getBrowserWindow(browserWindowId);
|
|
4830
|
+
if (!browserWindow) {
|
|
4831
|
+
return;
|
|
4832
|
+
}
|
|
4833
|
+
if (key === 'toggleDevtools') {
|
|
4834
|
+
toggleDevtools(browserWindow);
|
|
4765
4835
|
return;
|
|
4766
4836
|
}
|
|
4767
4837
|
browserWindow[key]();
|
|
4768
4838
|
};
|
|
4769
4839
|
const executeWebContentsFunction = (browserWindowId, key, ...args) => {
|
|
4770
|
-
const browserWindow =
|
|
4840
|
+
const browserWindow = getBrowserWindow(browserWindowId);
|
|
4771
4841
|
if (!browserWindow) {
|
|
4772
|
-
info(`[main-process] browser window not found ${browserWindow}`);
|
|
4773
4842
|
return;
|
|
4774
4843
|
}
|
|
4775
4844
|
browserWindow.webContents[key](...args);
|