mirror of
https://github.com/finos/SymphonyElectron.git
synced 2024-12-29 02:11:28 -06:00
Merge remote-tracking branch 'sym/master'
This commit is contained in:
commit
f1d01ae1e8
13
entitlements.mac.plist
Normal file
13
entitlements.mac.plist
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key><true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key><true/>
|
||||
<key>com.apple.security.device.audio-input</key><true/>
|
||||
<key>com.apple.security.device.camera</key><true/>
|
||||
<key>com.apple.security.files.user-selected.read-write</key><true/>
|
||||
<key>com.apple.security.network.client</key><true/>
|
||||
</dict>
|
||||
</plist>
|
@ -52,7 +52,9 @@
|
||||
],
|
||||
"mac": {
|
||||
"category": "public.app-category.business",
|
||||
"icon": "images/icon.icns"
|
||||
"icon": "images/icon.icns",
|
||||
"entitlements": "entitlements.mac.plist",
|
||||
"entitlementsInherit": "entitlements.mac.plist"
|
||||
},
|
||||
"win": {
|
||||
"icon": "images/icon.ico",
|
||||
|
@ -144,10 +144,13 @@ export const activate = (windowName: string, shouldFocus: boolean = true): void
|
||||
/**
|
||||
* Sets always on top property based on isAlwaysOnTop
|
||||
*
|
||||
* @param shouldSetAlwaysOnTop
|
||||
* @param shouldActivateMainWindow
|
||||
* @param shouldSetAlwaysOnTop {boolean} - Whether to enable always on top or not
|
||||
* @param shouldActivateMainWindow {boolean} - Whether to active main window
|
||||
*/
|
||||
export const updateAlwaysOnTop = async (shouldSetAlwaysOnTop: boolean, shouldActivateMainWindow: boolean = true): Promise<void> => {
|
||||
export const updateAlwaysOnTop = async (
|
||||
shouldSetAlwaysOnTop: boolean,
|
||||
shouldActivateMainWindow: boolean = true,
|
||||
): Promise<void> => {
|
||||
logger.info(`window-actions: Should we set always on top? ${shouldSetAlwaysOnTop}!`);
|
||||
const browserWins: ICustomBrowserWindow[] = BrowserWindow.getAllWindows() as ICustomBrowserWindow[];
|
||||
await config.updateUserConfig({ alwaysOnTop: shouldSetAlwaysOnTop });
|
||||
@ -198,6 +201,18 @@ export const handleKeyPress = (key: number): void => {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Sets the window to always on top based
|
||||
* on fullscreen state
|
||||
*/
|
||||
const setSpecificAlwaysOnTop = () => {
|
||||
const browserWindow = BrowserWindow.getFocusedWindow();
|
||||
if (isMac && browserWindow && windowExists(browserWindow) && browserWindow.isAlwaysOnTop()) {
|
||||
// Set the focused window's always on top level based on fullscreen state
|
||||
browserWindow.setAlwaysOnTop(true, browserWindow.isFullScreen() ? 'modal-panel' : 'floating');
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Monitors window actions
|
||||
*
|
||||
@ -223,6 +238,13 @@ export const monitorWindowActions = (window: BrowserWindow): void => {
|
||||
if ((window as ICustomBrowserWindow).winName === apiName.mainWindowName) {
|
||||
window.on('restore', throttledWindowRestore);
|
||||
}
|
||||
|
||||
// Workaround for an issue with MacOS + AlwaysOnTop
|
||||
// Issue: SDA-1665
|
||||
if (isMac) {
|
||||
window.on('enter-full-screen', setSpecificAlwaysOnTop);
|
||||
window.on('leave-full-screen', setSpecificAlwaysOnTop);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
@ -246,6 +268,13 @@ export const removeWindowEventListener = (window: BrowserWindow): void => {
|
||||
|
||||
window.removeListener('leave-full-screen', throttledWindowChanges);
|
||||
window.removeListener('unmaximize', throttledWindowChanges);
|
||||
|
||||
// Workaround for and issue with MacOS + AlwaysOnTop
|
||||
// Issue: SDA-1665
|
||||
if (isMac) {
|
||||
window.removeListener('enter-full-screen', setSpecificAlwaysOnTop);
|
||||
window.removeListener('leave-full-screen', setSpecificAlwaysOnTop);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user