Fyne Versions Save

Cross platform GUI toolkit in Go inspired by Material Design

v2.3.0

1 year ago

Whatever you celebrate at this time of year we hope you will enjoy this exciting, shiny new look release of the Fyne toolkit. With a refined design, cloud integration, images in rich text and a new text handling engine there is a lot to love in Fyne v2.3.0.

Added

  • Shiny new theme that was designed for us
  • Improved text handling to support non-latin alphabets
  • Add cloud storage and preference support
  • Add menu icon and submenu support to system tray menus
  • More button importance levels ErrorImportance, WarningImportance
  • Support disabling of AppTabs and DocTabs items
  • Add image support to rich text (#2366)
  • Add CheckGroup.Remove (#3124)

Changed

  • The buttons on the default theme are no longer transparent, but we added more button importance types
  • Expose a storage.ErrNotExists for non existing documents (#3083)
  • Update go-gl/glfw to build against latest Glfw 3.3.8
  • List items in widget.List now implements the Focusable interface

Fixed

  • Displaying unicode or different language like Bengali doesn't work (#598)
  • Cannot disable container.TabItem (#1904)
  • Update Linux/XDG application theme to follow the FreeDesktop Dark Style Preference (#2657)
  • Running fyne package -os android needs NDK 16/19c (#3066)
  • Caret position lost when resizing a MultilineEntry (#3024)
  • Fix possible crash in table resize (#3369)
  • Memory usage surge when selecting/appending MultilineEntry text (#3426)
  • Fyne bundle does not support appending when parameter is a directory
  • Crash parsing invalid file URI (#3275)
  • Systray apps on macOS can only be terminated via the systray menu quit button (#3395)
  • Wayland Scaling support: sizes and distances are scaled wrong (#2850)
  • Google play console minimum API level 31 (#3375)
  • Data bound entry text replacing selection is ignored (#3340)
  • Split Container does not respect item's Visible status (#3232)
  • Android - Entry - OnSubmitted is not working (#3267)
  • Can't set custom CGO_CFLAGS and CGO_LDFLAGS with "fyne package" on darwin (#3276)
  • Text line not displayed in RichText (#3117)
  • Segfault when adding items directly in form struct (#3153)
  • Preferences RemoveValue does not save (#3229)
  • Create new folder directly from FolderDialog (#3174)
  • Slider drag handle is clipped off at minimum size (#2966)
  • Entry text "flickering" while typing (#3461)
  • Rendering of not changed canvas objects after an event (#3211)
  • Form dialog not displaying hint text and validation errors (#2781)

Have a very happy holiday and do let us know what you build with this new release. Head to GitHub to report issues or request new features, we will be hard at work after a few more mince pies!

v2.2.4

1 year ago

This minor release cover bug fixes, especially addressing the area around mobile devices.

The complete list is as follow:

  • Iphone incorrect click coordinates in zoomed screen view (#3122)
  • CachedFontFace seems to be causing crash (#3134)
  • Fix possible compile error if "fyne build" is used without icon metadata
  • Detect and use recent Android NDK toolchain
  • Handle fyne package -release and fyne release properly for Android and iOS
  • Fix issue with mobile simulation when systray used
  • Fix incorrect size and position for radio focus indicator (#3137)

v2.2.2

1 year ago

In this release we updated applications so that if a system tray icon was visible the app would not exit when the last window closes. You can still set a window to be master if you would like the app to exit on close.

We also have a great list of fixes to the command line and various widgets as follows:

  • Windows missing version metadata when packaged (#3046)
  • Fyne package would not build apps using old Fyne versions
  • System tray icon may not be removed on app exit in Windows
  • Emphasis in Markdown gives erroneous output in RichText (#2974)
  • When last visible window is closed, hidden window is set visible (#3059)
  • Do not close app when last window is closed but systrayMenu exists (#3092)
  • Image with ImageFillOriginal not showing (#3102)
  • Fix build issue with web target from macOS computers

v2.2.1

1 year ago

Apologies to a couple of our users who found issues with the v2.2.0 release. These fixes resolve the reported problems plus some high severity bugs.

  • Fix various race conditions and compatibility issues with System tray menus
  • Resolve issue where macOS systray menu may not appear
  • Updated yaml dependency to fix CVE-2022-28948
  • Tab buttons stop working after removing a tab (#3050)
  • os.SetEnv("FYNE_FONT") doesn't work in v2.2.0 (#3056)

v2.2.0

1 year ago

The exciting v2.2.0 is finally here and it has a long list of improvements bundled in. Top of the exciting features are sure to be the support for desktop system tray menus, the ability to run your Fyne apps through a web browser (technical preview - not feature complete) and also to specify themes more easily using JSON resources.

Highlighted additions

  • Add SetIcon method on ToolbarAction (#2475)
  • Access compiled app metadata using new App.Metadata() method
  • Add support for System tray icon and menu (#283)
  • Support for Android Application Bundle (.aab) (#2663)
  • Initial support for OpenBSD and NetBSD
  • Add keyboard shortcuts to menu (#682)
  • Add technical preview of web driver and fyne serve command
  • Added iossimulator build target (#1917)
  • Allow dynamic themes via JSON templates (#211)
  • Custom hyperlink callback (#2979)
  • Add support for .ico file when compiling for windows (#2412)
  • Add binding.NewStringWithFormat (#2890)
  • Add Entry.SetMinRowsVisible
  • Add Menu.Refresh() and MainMenu.Refresh() (#2853)
  • Packages for Linux and BSD now support installing into the home directory
  • Add .RemoveAll() to containers
  • Add an AllString validator for chaining together string validators

Changes

There are also a few changes that may be of note for some developers - there is a small chance you might need to update some code as a result, but none of them are breaking changes:

  • Toolbar item constructors now return concrete types instead of ToolbarItem
  • Low importance buttons no longer draw button color as a background
  • ProgressBar widget height is now consistent with other widgets
  • Include check in DocTabs menu to show current tab
  • Don't call OnScrolled if offset did not change (#2646)
  • Prefer ANDROID_NDK_HOME over the ANDROID_HOME ndk-bundle location (#2920)
  • Support serialisation / deserialisation of the widget tree (#5)
  • Better error reporting / handling when OpenGL is not available (#2689)
  • Memory is now better reclaimed on Android when the OS requests it
  • Notifications on Linux and BSD now show the application icon
  • Change listeners for preferences no longer run when setting the same value
  • The file dialog now shows extensions in the list view for better readability
  • Many optimisations and widget performance enhancements
  • Updated various dependencies to their latest versions

So there you go. There are many, many bug fixes as well but we didn't want to bore you with them - just check the bug tracker :). Let us know how you get on and have a great time building even more awesome apps!

v2.1.4

2 years ago

Just a few small fixes that improve stability of rapidly changing containers and fixes a sizing issue for some fixed size windows.

Fixed

v2.1.3

2 years ago

As we continue work on the v2.2.0 release we wanted to get a few bug fixes delivered as well, these include:

  • The text on button can't be show correctly when use imported font (#2512)
  • Fix issues with DocTabs scrolling (#2709)
  • Fix possible crash for tapping extended Radio or Check item
  • Resolve lookup of relative icons in FyneApp.toml
  • Window not shown when SetFixedSize is used without Resize (#2784)
  • Text and links in markdown can be rendered on top of each other (#2695)
  • Incorrect cursor movement in a multiline entry with wrapping (#2698)

We'll see you again soon with some great feature additions!

v2.1.2

2 years ago

This bug fix release on the 2.1 feature set of Fyne brings various stability improvements amd re-introduces support for older macOS devices. You can use the -tags legacy to add support for older SDKs that are no longer supported by the OS provider.

Fixed

  • Scrolling list bound to data programatically causes nil pointer dereference (#2549)
  • Rich text from markdown can get newlines wrong (#2589)
  • Fix crash on 32bit operating systems (#2603)
  • Compile failure on MacOS 10.12 Sierra (#2478)
  • Don't focus widgets on mobile where keyboard should not display (#2598)
  • storage.List doesn't return complete URI on Android for "content:" scheme (#2619)
  • Last word of the line and first word of the next line are joined in markdown parse (#2647)
  • Support for building cmd/fyne on Windows arm64
  • Fixed FreeBSD requiring installed glfw library dependency (#1928)
  • Apple M1: error when using mouse drag to resize window (#2188)
  • Struct binding panics in reload with slice field (#2607)
  • File Dialog favourites can break for certain locations (#2595)
  • Define user friendly names for Android Apps (#2653)
  • Entry validator not updating if content is changed via data binding after SetContent (#2639)
  • CenterOnScreen not working for FixedSize Window (#2550)
  • Panic in boundStringListItem.Get() (#2643)
  • Can't set an app/window icon to be an svg. (#1196)
  • SetFullScreen(false) can give error (#2588)

As always please let us know how you find this release so we can keep on improving!

v2.1.1

2 years ago

The following list of fixes are included:

  • Fix issue where table could select cells beyond data bound
  • Some fast taps could be ignored (#2484)
  • iOS app stops re-drawing mid-frame after a while (#950)
  • Mobile simulation mode did not work on Apple M1 computers
  • TextGrid background color can show gaps in render (#2493)
  • Fix alignment of files in list view of file dialog
  • Crash setting visible window on macOS to fixed size (#2488)
  • fyne bundle ignores -name flag in windows (#2395)
  • Lines with nil colour would crash renderer
  • Android -nm tool not found with NDK 23 (#2498)
  • Runtime panic because out of touchID (#2407)
  • Long text in Select boxes overflows out of the box (#2522)
  • Calling SetText on Label may not refresh correctly
  • Menu can be triggered by # key but not always Alt
  • Cursor position updates twice with delay (#2525)
  • widgets freeze after being in background and then a crash upon pop-up menu (#2536)
  • too many Refresh() calls may now cause visual artifacts in the List widget (#2548)
  • Entry.SetText may panic if called on a multiline entry with selected text (#2482)
  • TextGrid not always drawing correctly when resized (#2501)

v2.1.0

2 years ago

The v2.1.0 release represents a huge step forward since 2.0 - just as many commits as went into the v2.0.0 release! We added new widgets, a Lifecycle API, storage helpers, build metadata and lots of optimisations too. Check out the full release below and let us know what you think :)

Note that custom focusable widgets will not automatically be focussed on tap any more, you may wish to update your code so it requests focus on tapped (see https://developer.fyne.io/api/v2.1/upgrading).

Added

  • DocTabs container for handling multiple open files
  • Lifecycle API for handling foreground, background and other event
  • Add RichText widget and Markdown parser
  • Add TabWidth to TextStyle to specify tab size in spaces
  • Add CheckGroup widget for multi-select
  • Add FyneApp.toml metadata file to ease build commands
  • Include http and https in standard repositories
  • Add selection color to themes
  • Include baseline information in driver font measurement
  • Document storage API (App.Storage().Create() and others)
  • Add "App Files" to file dialog for apps that use document storage
  • Tab overflow on AppTabs
  • Add URI and Unbound type to data bindings
  • Add keyboard support for menus, pop-ups and buttons
  • Add SimpleRenderer to help make simple widgets (#709)
  • Add scroll functions for List, Table, Tree (#1892)
  • Add selection and disabling to MenuItem
  • Add Alignment to widget.Select (#2329)
  • Expose ScanCode for keyboard events originating from hardware (#1523)
  • Support macOS GPU switching (#2423)

Changed

  • Focusable widgets are no longer focused on tap, add canvas.Focus(obj) in Tapped handler if required
  • Move to background based selection for List, Table and Tree
  • Update fyne command line tool to use --posix style parameters
  • Switch from gz to xz compression for unix packages
  • Performance improvements with line, text and raster rendering
  • Items not yet visible can no longer be focused
  • Lines can now be drawn down to 1px (instead of 1dp) (#2298)
  • Support multiple lines of text on button (#2378)
  • Improved text layout speed by caching string size calculations
  • Updated to require Go 1.14 so we can use some new features
  • Window Resize request is now asynchronous
  • Up/Down keys take cursor home/end when on first/last lines respectively

Fixed

  • Correctly align text tabs (#1791)
  • Mobile apps theme does not match system (#472)
  • Toolbar with widget.Label makes the ToolbarAction buttons higher (#2257)
  • Memory leaks in renderers and canvases cache maps (#735)
  • FileDialog SetFilter does not work on Android devices (#2353)
  • Hover fix for List and Tree with Draggable objects
  • Line resize can flip slope (#2208)
  • Deadlocks when using widgets with data (#2348)
  • Changing input type with keyboard visible would not update soft keyboards
  • MainMenu() Close item does NOT call function defined in SetCloseIntercept (#2355)
  • Entry cursor position with mouse is offset vertically by theme.SizeNameInputBorder (#2387)
  • Backspace key is not working on Android AOSP (#1941)
  • macOS: 'NSUserNotification' has been deprecated (#1833)
  • macOS: Native menu would add new items if refreshed
  • iOS builds fail since Go 1.16
  • Re-add support for 32 bit iOS devices, if built with Go 1.14
  • Android builds fail on Apple M1 (#2439)
  • SetFullScreen(true) before ShowAndRun fails (#2446)
  • Interacting with another app when window.SetFullScreen(true) will cause the application to hide itself. (#2448)
  • Sequential writes to preferences does not save to file (#2449)
  • Correct Android keyboard handling (#2447)
  • MIUI-Android: The widget’s Hyperlink cannot open the URL (#1514)
  • Improved performance of data binding conversions and text MinSize