Fix resizing bug

Refactor some application setters
This commit is contained in:
Lea Anthony 2022-12-17 20:49:46 +11:00
commit a8d5f185c2
No known key found for this signature in database
GPG key ID: 33DAF7BB90A58405
2 changed files with 15 additions and 6 deletions

View file

@ -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)

View file

@ -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];
}
});
}