aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/tunnelsview.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-04-29 21:10:38 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-04-29 21:10:38 +0200
commit4ac73ea74b8fb778f1324ceb1eb11b131f2520c1 (patch)
treee2316076dfb54fd7e610c3b2d1156dd7c1552a92 /ui/tunnelsview.go
parentui: rework tunnel adding logic and fix bugs (diff)
downloadwireguard-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.go19
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
+ }
+ }
+ }()
+}