diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-04-27 16:39:06 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-04-27 16:39:06 +0200 |
commit | 509576a0a7051d984d21fbecfec44b4fa5cc0674 (patch) | |
tree | c154e97a58a9a98af9a3fe316285ee3fdd0b22a3 /ui/ui.go | |
parent | ui: enable double buffering on confview (diff) | |
download | wireguard-windows-509576a0a7051d984d21fbecfec44b4fa5cc0674.tar.xz wireguard-windows-509576a0a7051d984d21fbecfec44b4fa5cc0674.zip |
ui: fix UI hide/quit logic
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'ui/ui.go')
-rw-r--r-- | ui/ui.go | 20 |
1 files changed, 13 insertions, 7 deletions
@@ -20,6 +20,8 @@ import "C" var iconProvider *IconProvider +var shouldQuitManagerWhenExiting = false + func RunUI() { runtime.LockOSThread() @@ -37,28 +39,32 @@ func RunUI() { walk.MsgBox(nil, "Unable to initialize icon provider", fmt.Sprint(err), walk.MsgBoxIconError) return } - defer iconProvider.Dispose() mtw, err := NewManageTunnelsWindow() if err != nil { panic(err) } - defer mtw.Dispose() tray, err := NewTray(mtw) if err != nil { panic(err) } - defer tray.Dispose() mtw.Run() + tray.Dispose() + mtw.Dispose() + iconProvider.Dispose() + + if shouldQuitManagerWhenExiting { + _, err := service.IPCClientQuit(true) + if err != nil { + walk.MsgBox(nil, "Error Exiting WireGuard", fmt.Sprintf("Unable to exit service due to: %s. You may want to stop WireGuard from the service manager.", err), walk.MsgBoxIconError) + } + } } func onQuit() { - _, err := service.IPCClientQuit(true) - if err != nil { - walk.MsgBox(nil, "Error Exiting WireGuard", fmt.Sprintf("Unable to exit service due to: %s. You may want to stop WireGuard from the service manager.", err), walk.MsgBoxIconError) - } + shouldQuitManagerWhenExiting = true walk.App().Exit(0) } |