f533739d6e
Give the window titlebar, taskbar, and tray a size-appropriate icon with a transparent boundary on both Windows and Linux, instead of scaling one PNG to every size. Assets: - Regenerate the PNGs and gosentry.ico with feathered color-to-alpha so the rounded-tile boundary is transparent; a binary white-key had left an opaque halo that read as a border on dark taskbars/trays. - Rebuild gosentry.ico as multi-size (16 hand-tuned + 32/48/256 from big) and add a single-frame 16x16 gosentry-icon-16x16.ico for the Windows tray. - assets.go: add IconSmall() and IconSmallICO(). Wiring: - Windows window/taskbar: embed gosentry.ico under the GLFW_ICON resource and skip a.SetIcon so GLFW selects the right frame per size (hand-tuned 16 for the titlebar, a larger frame for the taskbar). - Windows tray: SetSystemTrayIcon(IconSmallICO()), a 16x16 ICO frame. - Linux window titlebar: a.SetIcon(IconSmall()) for a crisp ~16px _NET_WM_ICON; tray uses the big PNG since StatusNotifierItem renders larger. Also bump Fyne 2.6.3 -> 2.7.4 (systray 1.11.0 -> 1.12.1) and document the full cross-platform icon strategy in assets.go, gosentry.rc, run.go, and tray.go. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
11 lines
655 B
Plaintext
11 lines
655 B
Plaintext
// The same multi-size .ico is embedded under two resource names on purpose:
|
|
// IDI_ICON1 - the lowest-id icon, which Windows Explorer / shortcuts use for the
|
|
// executable's file icon.
|
|
// GLFW_ICON - the name GLFW looks up to icon the window. Because run.go does NOT
|
|
// call a.SetIcon on Windows, GLFW falls back to this resource and
|
|
// selects the right frame per size (hand-tuned 16 for the titlebar,
|
|
// a larger frame for the taskbar). See assets/assets.go for the full
|
|
// cross-platform icon strategy.
|
|
IDI_ICON1 ICON "assets/gosentry.ico"
|
|
GLFW_ICON ICON "assets/gosentry.ico"
|