Breaking changes
- macOS child windows stay put when their parent moves, as they do on Windows and Linux. (#764)
- Apps with Chinese, Japanese or Korean names get a new default slug, such as
yun-yin-lefor 云音乐. If you've already shipped on Linux, setslugto your current one, since a changed slug leaves the old executable and Debian package installed. (#768) - Disk images and Windows installers are named after the slug, such as
my-app-1.2.0-arm64.dmgandmy-app-setup-1.2.0-amd64.exe. Update download links and CI globs that use the old names. Installed apps update as before. (#769) audio.Player.Positionreports where playback is heard, so it reads about 40 ms later than before (250 ms withLatencyPlayback). Lyrics, progress bars and visualizers drawn from it are in sync with the sound. (#746)
Highlights
- Sharp zoom for native UI.
Context.SetZoomzooms a window's content the way a browser does: text, icons, vectors and images are drawn crisp at the zoomed size, and the pointer, IME, accessibility, menus, drags and web views all follow. The gallery example zooms with Ctrl/Cmd=,-and0. (#739, @HeroSizy) - Flyouts and windows that size to their page.
FitContentonFlyoutOptionsandWindowOptionssizes a flyout or window to its web page's content and follows it as it changes, within the limits you set, like a browser extension's popup. (#787) - Icons on menu items.
NewMenuIconandMenuItem.Iconshow a full-color or template icon beside a menu item's label, in app menus, context menus and tray menus, on macOS, Windows and Linux. (#776) - One-command install on macOS and Windows. Apps with updates get an
install.shthat installs on macOS as well as Linux, and aninstall.ps1for Windows. Both check the download's signature or checksum before installing. (#748, @HeroSizy) - Smoother animation that costs less. Spinners, progress bars and other moving drawings repaint only themselves, and the GPU redraws only the areas that changed.
Painter.AnimationFrameRatelets slow motion (a turning record) draw at 30 or 60 frames a second instead of the display's 120, andElement.Cachekeeps a still part of the window as one bitmap. (#753, #754, #757, #759, #760)
New
Windows and pages
Page.ThemeColorandOnThemeColorChangedread a page's<meta name="theme-color">, so you can tint your title bar or toolbar to match the page. (#778)Page.IsAudible,OnAudibleChangedandSetAudioMutedtell you when a page plays sound and mute it as a browser mutes a tab. (#781)Page.ProcessIDgives the ID of the process that runs a page (on macOS and Windows). (#777)WindowOpenRequest.UserInitiatedtells a window-open handler whether the user clicked to open the window, so you can allow those and block pop-ups a script opens on its own. (#785)- On Windows,
Window.SetWindowButtonsThemedraws the caption buttons of a hidden title bar for a light or dark background, regardless of the app's own appearance. (#763) App.IsActivereports whether your app is the one in front. (#775)
Native UI
Element.Hiddenhides an element and gives its room back, like CSS'sdisplay: none, while keeping the state of everything inside it. (#772)- Paths can be stroked with butt or square caps, miter or bevel joins, and dashes, like SVG strokes. (#774, @firede)
Glass.Claritymakes large glass panes, like sidebars and inspectors, clearer so the content under them reads through. (#736, @HeroSizy)- Markdown can draw inline math on the text line with your own renderer (
Options.InlineMath), and unfinished$…math shows as math while a document streams in. (#737) - On Linux, native UI works with a touchscreen: tap to click, hold to right-click, drag to scroll and pinch to zoom. (#800)
- The code editor highlights Dart, GraphQL, R and Scala. (#791)
- In the terminal, Shift-click extends or shrinks the current selection, across lines too. (#590, @xierenyuan)
Audio
audio.SetLatency(audio.LatencyPlayback)lets music players buffer further ahead, so playback stays smooth when macOS switches between light and dark mode. (#743)
Updates and distribution
Updater.SetPrereleasesoffers prereleases to users who chose a beta, while everyone else stays on stable releases.mygo buildsuggests publishing a pre-release version as a prerelease. (#761, @HeroSizy)- A new
slugconfig field names your app's files where plain ASCII is needed: the Linux executable and package, update archives and install scripts. (#768) windows.displayNameshows your app under another name than its executable's in the Start menu, shortcuts, Settings > Apps and the installer, such as "天气助手" forweather.exe. (#782)- Windows installers and
install.ps1close a running app before upgrading it, tray apps included, and the newpublisherfield shows in Settings > Apps. (#748, @HeroSizy)
Fixes
Updates
- Apps with non-ASCII names (like "MyGo 云音乐") download updates reliably. They used to fail with "400 Bad Request". (#773)
- On macOS, an installed update keeps the app's single Dock tile. (#806)
- An update found by a background check opens in front of the app's windows, or waits until the app comes to the front. (#775)
- On macOS, an app relaunched after an update keeps its child processes running when a program it started quits. (#747)
UI and apps
- Cmd-Q and other quits always end the app. (#805)
SearchField,ComboboxandTokenFieldwithAutoFocusorFocusput the focus in the input, so typing and Submit work right away. (#793)- Scroll views and clipped boxes animate smoothly as they move, such as a sidebar folding on Windows. (#795, thanks @ikexing-cn)
- The terminal's Mirror clears the old session's images when the other program starts a new session. (#792)
macOS
- Child windows work on another display: they show and take clicks there, and the one you focus comes to the front. They stay above their parent, follow it into full screen and keep its level. (#764, @li-yifei)
- A quick press and drag on a drag region always moves the window. (#765)
- A tray title that shows a changing number (a timer, a rate) keeps its width, so the icon and its neighbours stay in place. (#766)
- Fixed a crash when an accessibility client sets a number as a text field's value. (#803)
Windows
- The terminal scrolls three rows per mouse wheel notch, like Windows Terminal. (#784)
- With "Show accent color on title bars" on, windows with a hidden title bar show no accent strip at the top. (#804)
- Hidden or off-screen windows no longer stall the app for a second on each frame. (#767)
- Windows drawn without the GPU (
MYGO_GPU=0) animate at the display's rate instead of using a whole CPU core. (#758)
Website
- A Showcase page lists apps built with MyGo. Add yours by pull request. (#744)
New Contributors
- @li-yifei made their first contribution in #764
- @ikexing-cn made their first contribution in #795
Full Changelog: v0.6.4...v0.7.0