From 56ef4ddd47dfceaddf0af5bcdb73d6c37e2bd820 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Wed, 10 Nov 2021 18:11:54 +1100 Subject: [PATCH] [v2] Add WindowStartState. Fix startHidden option. Only windows supported atm --- .../frontend/desktop/windows/frontend.go | 29 ++++++++++++------- v2/pkg/options/options.go | 10 +++++++ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/v2/internal/frontend/desktop/windows/frontend.go b/v2/internal/frontend/desktop/windows/frontend.go index 2f551cd15..018b4dfee 100644 --- a/v2/internal/frontend/desktop/windows/frontend.go +++ b/v2/internal/frontend/desktop/windows/frontend.go @@ -130,10 +130,6 @@ func (f *Frontend) Run(ctx context.Context) error { } }() - if f.frontendOptions.Fullscreen { - mainWindow.Fullscreen() - } - mainWindow.Run() mainWindow.Close() return nil @@ -412,11 +408,6 @@ func (f *Frontend) navigationCompleted(sender *edge.ICoreWebView2, args *edge.IC go f.frontendOptions.OnDomReady(f.ctx) } - // If you want to start hidden, return - if f.frontendOptions.StartHidden { - return - } - // Hack to make it visible: https://github.com/MicrosoftEdge/WebView2Feedback/issues/1077#issuecomment-825375026 err := f.chromium.Hide() if err != nil { @@ -426,6 +417,24 @@ func (f *Frontend) navigationCompleted(sender *edge.ICoreWebView2, args *edge.IC if err != nil { log.Fatal(err) } - f.mainWindow.Show() + + if f.frontendOptions.StartHidden { + return + } + + switch f.frontendOptions.WindowStartState { + case options.Maximised: + f.mainWindow.Maximise() + case options.Minimised: + f.mainWindow.Minimise() + case options.Fullscreen: + f.mainWindow.Fullscreen() + f.mainWindow.Show() + default: + if f.frontendOptions.Fullscreen { + f.mainWindow.Fullscreen() + } + f.mainWindow.Show() + } } diff --git a/v2/pkg/options/options.go b/v2/pkg/options/options.go index ce9a03a06..b82d1f72e 100644 --- a/v2/pkg/options/options.go +++ b/v2/pkg/options/options.go @@ -15,6 +15,15 @@ import ( "github.com/wailsapp/wails/v2/pkg/logger" ) +type WindowStartState int + +const ( + Normal WindowStartState = 0 + Maximised WindowStartState = 1 + Minimised WindowStartState = 2 + Fullscreen WindowStartState = 3 +) + // App contains options for creating the App type App struct { Title string @@ -39,6 +48,7 @@ type App struct { OnDomReady func(ctx context.Context) `json:"-"` OnShutdown func(ctx context.Context) `json:"-"` Bind []interface{} + WindowStartState WindowStartState //ContextMenus []*menu.ContextMenu //TrayMenus []*menu.TrayMenu