mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 12:28:42 +00:00
fix: should use fullscreen to control where to place macos window controls (#6351)
This commit is contained in:
@@ -104,9 +104,8 @@ async function createWindow(additionalArguments: string[]) {
|
||||
|
||||
logger.info('main window is ready to show');
|
||||
|
||||
if (browserWindow.isMaximized() || browserWindow.isFullScreen()) {
|
||||
uiSubjects.onMaximized$.next(true);
|
||||
}
|
||||
uiSubjects.onMaximized$.next(browserWindow.isMaximized());
|
||||
uiSubjects.onFullScreen$.next(browserWindow.isFullScreen());
|
||||
|
||||
handleWebContentsResize().catch(logger.error);
|
||||
});
|
||||
@@ -143,21 +142,26 @@ async function createWindow(additionalArguments: string[]) {
|
||||
browserWindow.setSize(size[0], size[1]);
|
||||
});
|
||||
uiSubjects.onMaximized$.next(false);
|
||||
uiSubjects.onFullScreen$.next(false);
|
||||
});
|
||||
|
||||
browserWindow.on('maximize', () => {
|
||||
uiSubjects.onMaximized$.next(true);
|
||||
});
|
||||
|
||||
// full-screen == maximized in UI on windows
|
||||
browserWindow.on('enter-full-screen', () => {
|
||||
uiSubjects.onMaximized$.next(true);
|
||||
});
|
||||
|
||||
browserWindow.on('unmaximize', () => {
|
||||
uiSubjects.onMaximized$.next(false);
|
||||
});
|
||||
|
||||
// full-screen == maximized in UI on windows
|
||||
browserWindow.on('enter-full-screen', () => {
|
||||
uiSubjects.onFullScreen$.next(true);
|
||||
});
|
||||
|
||||
browserWindow.on('leave-full-screen', () => {
|
||||
uiSubjects.onFullScreen$.next(false);
|
||||
});
|
||||
|
||||
/**
|
||||
* URL for main window.
|
||||
*/
|
||||
|
||||
@@ -11,4 +11,10 @@ export const uiEvents = {
|
||||
sub.unsubscribe();
|
||||
};
|
||||
},
|
||||
onFullScreen: (fn: (fullScreen: boolean) => void) => {
|
||||
const sub = uiSubjects.onFullScreen$.subscribe(fn);
|
||||
return () => {
|
||||
sub.unsubscribe();
|
||||
};
|
||||
},
|
||||
} satisfies Record<string, MainEventRegister>;
|
||||
|
||||
@@ -20,6 +20,10 @@ export const uiHandlers = {
|
||||
const window = await getMainWindow();
|
||||
return window?.isMaximized();
|
||||
},
|
||||
isFullScreen: async () => {
|
||||
const window = await getMainWindow();
|
||||
return window?.isFullScreen();
|
||||
},
|
||||
handleThemeChange: async (_, theme: (typeof nativeTheme)['themeSource']) => {
|
||||
nativeTheme.themeSource = theme;
|
||||
},
|
||||
|
||||
@@ -2,4 +2,5 @@ import { Subject } from 'rxjs';
|
||||
|
||||
export const uiSubjects = {
|
||||
onMaximized$: new Subject<boolean>(),
|
||||
onFullScreen$: new Subject<boolean>(),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user