From a8d5f185c28fd67412b809e15513217b8e852454 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Sat, 17 Dec 2022 20:49:46 +1100 Subject: [PATCH] Fix resizing bug Refactor some application setters --- exp/pkg/application/window.go | 14 +++++++++----- exp/pkg/application/window_darwin.go | 7 ++++++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/exp/pkg/application/window.go b/exp/pkg/application/window.go index 64eb952b3..250767f58 100644 --- a/exp/pkg/application/window.go +++ b/exp/pkg/application/window.go @@ -116,13 +116,17 @@ func (w *Window) NavigateToURL(s string) { } func (w *Window) SetResizable(b bool) { + w.options.DisableResize = !b if w.impl == nil { - w.options.DisableResize = !b return } w.impl.setResizable(b) } +func (w *Window) Resizable() bool { + return !w.options.DisableResize +} + func (w *Window) SetMinSize(minWidth, minHeight int) { if w.impl == nil { w.options.MinWidth = minWidth @@ -171,8 +175,8 @@ func (w *Window) ExecJS(js string) { // Set Maximized func (w *Window) SetMaximized() { + w.options.StartState = options.WindowStateMaximised if w.impl == nil { - w.options.StartState = options.WindowStateMaximised return } w.impl.setMaximised() @@ -180,8 +184,8 @@ func (w *Window) SetMaximized() { // Set Minimized func (w *Window) SetMinimized() { + w.options.StartState = options.WindowStateMinimised if w.impl == nil { - w.options.StartState = options.WindowStateMinimised return } w.impl.setMinimised() @@ -189,8 +193,8 @@ func (w *Window) SetMinimized() { // Set Fullscreen func (w *Window) SetFullscreen() { + w.options.StartState = options.WindowStateFullscreen if w.impl == nil { - w.options.StartState = options.WindowStateFullscreen return } w.impl.setFullscreen() @@ -231,8 +235,8 @@ func (w *Window) IsFullscreen() bool { } func (w *Window) SetBackgroundColor(color *options.RGBA) { + w.options.BackgroundColour = color if w.impl == nil { - w.options.BackgroundColour = color return } w.impl.setBackgroundColor(color) diff --git a/exp/pkg/application/window_darwin.go b/exp/pkg/application/window_darwin.go index a039cf15f..595f813f7 100644 --- a/exp/pkg/application/window_darwin.go +++ b/exp/pkg/application/window_darwin.go @@ -140,7 +140,12 @@ void navigationLoadURL(void* nsWindow, char* url) { void windowSetResizable(void* nsWindow, bool resizable) { // Set window resizable on main thread dispatch_async(dispatch_get_main_queue(), ^{ - [(NSWindow*)nsWindow setStyleMask:resizable ? NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable : NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable]; + NSWindow* window = (NSWindow*)nsWindow; + if (resizable) { + [window setStyleMask:[window styleMask] | NSWindowStyleMaskResizable]; + } else { + [window setStyleMask:[window styleMask] & ~NSWindowStyleMaskResizable]; + } }); }