Always on top windows should be restored as is after taking a screenshot

This commit is contained in:
sbenmoussati 2023-06-08 10:24:57 +02:00 committed by Salah Benmoussati
parent e35c80f0ec
commit ca8725351c
2 changed files with 18 additions and 5 deletions

View File

@ -475,6 +475,7 @@ class ScreenSnippet {
minimized: mainWindow?.isMinimized(), minimized: mainWindow?.isMinimized(),
isFullScreen: mainWindow?.isFullScreen(), isFullScreen: mainWindow?.isFullScreen(),
isVisible: mainWindow?.isVisible(), isVisible: mainWindow?.isVisible(),
isAlwaysOnTop: mainWindow?.isAlwaysOnTop(),
}, },
]; ];
@ -489,6 +490,7 @@ class ScreenSnippet {
minimized: window?.isMinimized(), minimized: window?.isMinimized(),
isFullScreen: window?.isFullScreen(), isFullScreen: window?.isFullScreen(),
isVisible: window?.isVisible(), isVisible: window?.isVisible(),
isAlwaysOnTop: window?.isAlwaysOnTop(),
}); });
} }
}); });
@ -500,6 +502,7 @@ class ScreenSnippet {
minimized: currentWindowObj?.isMinimized(), minimized: currentWindowObj?.isMinimized(),
isFullScreen: currentWindowObj?.isFullScreen(), isFullScreen: currentWindowObj?.isFullScreen(),
isVisible: currentWindowObj?.isVisible(), isVisible: currentWindowObj?.isVisible(),
isAlwaysOnTop: currentWindowObj?.isAlwaysOnTop(),
}); });
windowsArr = mainArr.concat(windowsArr); windowsArr = mainArr.concat(windowsArr);
} else { } else {

View File

@ -1,5 +1,6 @@
import { BrowserWindow } from 'electron'; import { BrowserWindow } from 'electron';
import { presenceStatusStore } from '.'; import { presenceStatusStore } from '.';
import { apiName } from '../../common/api-interface';
import { isMac, isWindowsOS } from '../../common/env'; import { isMac, isWindowsOS } from '../../common/env';
import { logger } from '../../common/logger'; import { logger } from '../../common/logger';
import { presenceStatus } from '../presence-status-handler'; import { presenceStatus } from '../presence-status-handler';
@ -16,6 +17,7 @@ export interface IWindowState {
focused?: boolean; focused?: boolean;
isFullScreen?: boolean; isFullScreen?: boolean;
isVisible?: boolean; isVisible?: boolean;
isAlwaysOnTop?: boolean;
} }
export class WindowStore { export class WindowStore {
@ -49,11 +51,16 @@ export class WindowStore {
currentWindows.forEach((currentWindow) => { currentWindows.forEach((currentWindow) => {
const isFullScreen = currentWindow.isFullScreen(); const isFullScreen = currentWindow.isFullScreen();
const isMinimized = currentWindow.isMinimized(); const isMinimized = currentWindow.isMinimized();
if (isFullScreen) { if (
this.hideFullscreenWindow(currentWindow); (currentWindow as ICustomBrowserWindow).winName !==
// No need to hide minimized windows apiName.notificationWindowName
} else if (!isMinimized) { ) {
currentWindow?.hide(); if (isFullScreen) {
this.hideFullscreenWindow(currentWindow);
// No need to hide minimized windows
} else if (!isMinimized) {
currentWindow?.hide();
}
} }
}); });
} }
@ -96,6 +103,9 @@ export class WindowStore {
focusedWindowToRestore = window; focusedWindowToRestore = window;
} }
} }
if (currentWindow && currentWindow.isAlwaysOnTop) {
window.setAlwaysOnTop(true);
}
} }
}); });