Desktop: show platform specific window buttons (#3078)

Implement app window button functionality and set platform
This commit is contained in:
Timon
2025-08-25 14:15:31 +00:00
committed by GitHub
parent 508606cdba
commit c5991c6f61
10 changed files with 91 additions and 28 deletions
+5 -2
View File
@@ -356,10 +356,13 @@ export class UpdatePlatform extends JsMessage {
readonly platform!: AppWindowPlatform;
}
export class UpdateMaximized extends JsMessage {
export class UpdateWindowState extends JsMessage {
readonly maximized!: boolean;
readonly minimized!: boolean;
}
export class CloseWindow extends JsMessage {}
export class UpdateViewportHolePunch extends JsMessage {
readonly active!: boolean;
}
@@ -1741,7 +1744,7 @@ export const messageMakers: Record<string, MessageMaker> = {
UpdateLayersPanelControlBarLeftLayout,
UpdateLayersPanelControlBarRightLayout,
UpdateLayerWidths,
UpdateMaximized,
UpdateWindowState,
UpdateMenuBarLayout,
UpdateMouseCursor,
UpdateNodeGraphControlBarLayout,
+3 -3
View File
@@ -3,7 +3,7 @@
import { writable } from "svelte/store";
import { type Editor } from "@graphite/editor";
import { type AppWindowPlatform, UpdatePlatform, UpdateMaximized, UpdateViewportHolePunch } from "@graphite/messages";
import { type AppWindowPlatform, UpdatePlatform, UpdateViewportHolePunch, UpdateWindowState } from "@graphite/messages";
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
export function createAppWindowState(editor: Editor) {
@@ -20,9 +20,9 @@ export function createAppWindowState(editor: Editor) {
return state;
});
});
editor.subscriptions.subscribeJsMessage(UpdateMaximized, (maximized) => {
editor.subscriptions.subscribeJsMessage(UpdateWindowState, (updateWindowState) => {
update((state) => {
state.maximized = maximized.maximized;
state.maximized = updateWindowState.maximized;
return state;
});
});