From 43708b6af9f4bb3f1b1ca603521171acd57cc820 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 14 May 2019 14:14:57 +0200 Subject: ui: show overlay in pinned taskbar This means the window icon no longer changes, which sucks, especially for servercore, but it means that the taskbar shows something useful on Windows 10. --- ui/managewindow.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'ui') diff --git a/ui/managewindow.go b/ui/managewindow.go index cd42e58a..a1f9aa83 100644 --- a/ui/managewindow.go +++ b/ui/managewindow.go @@ -23,8 +23,7 @@ type ManageTunnelsWindow struct { logPage *LogPage updatePage *UpdatePage - tunnelChangedCB *service.TunnelChangeCallback - taskbarButtonCreated bool + tunnelChangedCB *service.TunnelChangeCallback } const ( @@ -142,17 +141,18 @@ func (mtw *ManageTunnelsWindow) updateProgressIndicator(globalState service.Tunn default: pi.SetState(walk.PINoProgress) } + if icon, err := iconForState(globalState, mtw.DPI()/6); err == nil { //TODO: calculate DPI dynamically + if globalState == service.TunnelStopped { + icon = nil + } + pi.SetOverlayIcon(icon, textForState(globalState, false)) + } } func (mtw *ManageTunnelsWindow) onTunnelChange(tunnel *service.Tunnel, state service.TunnelState, globalState service.TunnelState, err error) { mtw.Synchronize(func() { mtw.updateProgressIndicator(globalState) - icon, err2 := iconWithOverlayForState(globalState, mtw.DPI()/3) //TODO: calculate DPI dynamically - if err2 == nil { - mtw.SetIcon(icon) - } - if err != nil && mtw.Visible() { errMsg := err.Error() if len(errMsg) > 0 && errMsg[len(errMsg)-1] != '.' { @@ -204,13 +204,14 @@ func (mtw *ManageTunnelsWindow) WndProc(hwnd win.HWND, msg uint32, wParam, lPara return 0 case taskbarButtonCreatedMsg: ret := mtw.FormBase.WndProc(hwnd, msg, wParam, lParam) - if !mtw.taskbarButtonCreated { - mtw.taskbarButtonCreated = true + go func() { globalState, err := service.IPCClientGlobalState() if err == nil { - mtw.updateProgressIndicator(globalState) + mtw.Synchronize(func() { + mtw.updateProgressIndicator(globalState) + }) } - } + }() return ret } -- cgit v1.2.3-59-g8ed1b