From 224f7c0c5688d070ec8792a0aa21225c8134e9df Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Tue, 2 Aug 2022 06:51:20 +1000 Subject: [PATCH] Move SetMin/Max calls to main thread (#1684) * Move SetMin/MAx calls to main thread * Move setsize back to original location * Remove debug --- v2/internal/frontend/desktop/linux/window.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/v2/internal/frontend/desktop/linux/window.go b/v2/internal/frontend/desktop/linux/window.go index 834b7c2df..5fc13b934 100644 --- a/v2/internal/frontend/desktop/linux/window.go +++ b/v2/internal/frontend/desktop/linux/window.go @@ -645,11 +645,11 @@ func NewWindow(appoptions *options.App, debug bool) *Window { // Setup window result.SetKeepAbove(appoptions.AlwaysOnTop) result.SetResizable(!appoptions.DisableResize) + result.SetSize(appoptions.Width, appoptions.Height) result.SetDecorated(!appoptions.Frameless) result.SetTitle(appoptions.Title) result.SetMinSize(appoptions.MinWidth, appoptions.MinHeight) result.SetMaxSize(appoptions.MaxWidth, appoptions.MaxHeight) - result.SetSize(appoptions.Width, appoptions.Height) if appoptions.Linux != nil { if appoptions.Linux.Icon != nil { result.SetWindowIcon(appoptions.Linux.Icon) @@ -735,13 +735,17 @@ func (w *Window) GetPosition() (int, int) { func (w *Window) SetMaxSize(maxWidth int, maxHeight int) { w.maxHeight = maxHeight w.maxWidth = maxWidth - C.SetMinMaxSize(w.asGTKWindow(), C.int(w.minWidth), C.int(w.minHeight), C.int(w.maxWidth), C.int(w.maxHeight)) + invokeOnMainThread(func() { + C.SetMinMaxSize(w.asGTKWindow(), C.int(w.minWidth), C.int(w.minHeight), C.int(w.maxWidth), C.int(w.maxHeight)) + }) } func (w *Window) SetMinSize(minWidth int, minHeight int) { w.minHeight = minHeight w.minWidth = minWidth - C.SetMinMaxSize(w.asGTKWindow(), C.int(w.minWidth), C.int(w.minHeight), C.int(w.maxWidth), C.int(w.maxHeight)) + invokeOnMainThread(func() { + C.SetMinMaxSize(w.asGTKWindow(), C.int(w.minWidth), C.int(w.minHeight), C.int(w.maxWidth), C.int(w.maxHeight)) + }) } func (w *Window) Show() {