diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-04-29 21:10:38 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-04-29 21:10:38 +0200 |
commit | 4ac73ea74b8fb778f1324ceb1eb11b131f2520c1 (patch) | |
tree | e2316076dfb54fd7e610c3b2d1156dd7c1552a92 /ui/tunnelsview.go | |
parent | ui: rework tunnel adding logic and fix bugs (diff) | |
download | wireguard-windows-4ac73ea74b8fb778f1324ceb1eb11b131f2520c1.tar.xz wireguard-windows-4ac73ea74b8fb778f1324ceb1eb11b131f2520c1.zip |
ui: show first active tunnels on window popup
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'ui/tunnelsview.go')
-rw-r--r-- | ui/tunnelsview.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ui/tunnelsview.go b/ui/tunnelsview.go index 15dc22ca..26099c2c 100644 --- a/ui/tunnelsview.go +++ b/ui/tunnelsview.go @@ -207,3 +207,22 @@ func (tv *TunnelsView) selectTunnel(tunnelName string) { } } } + +func (tv *TunnelsView) SelectFirstActiveTunnel() { + tunnels := make([]service.Tunnel, len(tv.model.tunnels)) + copy(tunnels, tv.model.tunnels) + go func() { + for _, tunnel := range tunnels { + state, err := tunnel.State() + if err != nil { + continue + } + if state == service.TunnelStarting || state == service.TunnelStarted { + tv.Synchronize(func() { + tv.selectTunnel(tunnel.Name) + }) + return + } + } + }() +} |