From 029afe53d47d81f6c8cbc56f2c2f722e9ceae122 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 4 Sep 2019 10:03:12 -0600 Subject: ui: do not initialize in global init() Signed-off-by: Jason A. Donenfeld --- ui/managewindow.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'ui') diff --git a/ui/managewindow.go b/ui/managewindow.go index 0a4a5114..8bf6422c 100644 --- a/ui/managewindow.go +++ b/ui/managewindow.go @@ -6,6 +6,7 @@ package ui import ( + "sync" "unsafe" "github.com/lxn/walk" @@ -32,13 +33,18 @@ const ( aboutWireGuardCmd = 0x37 ) -var taskbarButtonCreatedMsg = win.RegisterWindowMessage(windows.StringToUTF16Ptr("TaskbarButtonCreated")) +var taskbarButtonCreatedMsg uint32 -func init() { - walk.MustRegisterWindowClass(manageWindowWindowClass) -} +var initedManageTunnels sync.Once func NewManageTunnelsWindow() (*ManageTunnelsWindow, error) { + initedManageTunnels.Do(func() { + walk.AppendToWalkInit(func() { + walk.MustRegisterWindowClass(manageWindowWindowClass) + taskbarButtonCreatedMsg = win.RegisterWindowMessage(windows.StringToUTF16Ptr("TaskbarButtonCreated")) + }) + }) + var err error var disposables walk.Disposables defer disposables.Treat() -- cgit v1.2.3-59-g8ed1b