Skip to content

Releases: fyne-io/fyne

v2.1.3 for February Fix fiesta :)

25 Feb 20:13
Compare
Choose a tag to compare

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!

Stability fixes for 32bit iOS devices and many more fixes

06 Dec 22:40
Compare
Choose a tag to compare

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!

Lots of refresh fixes and some optimisations polish 2.1 in the v2.1.1 release

22 Oct 20:59
Compare
Choose a tag to compare

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 for RichText and DocTabs goodness :)

21 Sep 15:32
Compare
Choose a tag to compare

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

Android SDK update, TextGrid performance enhancements and a host of bug fixes

06 Aug 14:26
Compare
Choose a tag to compare

The latest set of fixes on top of the 2.0 version of Fyne brings stability improvements, speedups to many widgets and a variety of other bug fixes.
Additionally we have updated the fyne tool to build using Android SDK 30 and resolved some issues with windows cross-compilation.

Changed

  • Disable Form labels when the element it applies to is disabled (#1530)
  • Entry popup menu now fires shortcuts so extended widgets can intercept
  • Update Android builds to SDK 30

Fixed

  • sendnotification show appID for name on windows (#1940)
  • Fix accidental removal of windows builds during cross-compile
  • Removing an item from a container did not update layout
  • Update title bar on Windows 10 to match OS theme (#2184)
  • Tapped triggered after Drag (#2235)
  • Improved documentation and example code for file dialog (#2156)
  • Preferences file gets unexpectedly cleared (#2241)
  • Extra row dividers rendered on using SetColumnWidth to update a table (#2266)
  • Fix resizing fullscreen issue
  • Fullscreen changes my display resolution when showing a dialog (#1832)
  • Entry validation does not work for empty field (#2179)
  • Tab support for focus handling missing on mobile
  • ScrollToBottom not always scrolling all the way when items added to container.Scroller
  • Fixed scrollbar disappearing after changing content (#2303)
  • Calling SetContent a second time with the same content will not show
  • Drawing text can panic when Color is nil (#2347)
  • Optimisations when drawing transparent rectangle or whitespace strings

TextGrid optimisations FreeBSD 13 support and many bug fixes

30 Apr 19:22
Compare
Choose a tag to compare

This latest release of the 2.0.x branch brings a host of new fixes from reported issues.
We also worked to optimise rendering performance of TextGrid and supported compiling on the newly released FreeBSD 13.

Fixes include

  • Optimisations for TextGrid rendering
  • Data binding with widget.List sometimes crash while scrolling (#2125)
  • Fix compilation on FreeBSD 13
  • DataLists should notify only once when change.
  • Keyboard will appear on Android in disabled Entry Widget (#2139)
  • Save dialog with filename for Android
  • form widget can't draw hinttext of appended item. (#2028)
  • Don't create empty shortcuts (#2148)
  • Install directory for windows install command contains ".exe"
  • Fix compilation for Linux Wayland apps
  • Fix tab button layout on mobile (#2117)
  • Options popup does not move if a SelectEntry widget moves with popup open
  • Speed improvements to Select and SelectEntry drop down
  • theme/fonts has an apache LICENSE file but it should have SIL OFL (#2193)
  • Fix build requirements for target macOS platforms (#2154)
  • ScrollEvent.Position and ScrollEvent.AbsolutePosition is 0,0 (#2199)

We hope this improves your Fyne experience, please get in touch if you have any questions or feedback.

No April fool, this is a load of handy bug fixes

01 Apr 16:17
Compare
Choose a tag to compare

Various changes since 2.0.1 that help to improve stability and performance of the v2.0.x release line.

Changed

  • Text can now be copied from a disable Entry using keyboard shortcuts

Fixed

  • Slider offset position could be incorrect for mobile apps
  • Correct error in example code
  • When graphics init fails then don't try to continue running (#1593)
  • Don't show global settings on mobile in fyne_demo as it's not supported (#2062)
  • Empty selection would render small rectangle in Entry
  • Do not show validation state for disabled Entry
  • dialog.ShowFileSave did not support mobile (#2076)
  • Fix issue that storage could not write to files on iOS and Android
  • mobile app could crash in some focus calls
  • Duplicate symbol error when compiling for Android with NDK 23 (#2064)
  • Add internet permission by default for Android apps (#1715)
  • Child and Parent support in storage were missing for mobile appps
  • Various crashes with Entry and multiline selections (including #1989)
  • Slider calls OnChanged for each value between steps (#1748)
  • fyne command doesn't remove temporary binary from src (#1910)
  • Advanced Color picker on mobile keeps updating values forever after sliding (#2075)
  • exec.Command and widget.Button combination not working (#1857)
  • After clicking a link on macOS, click everywhere in the app will be linked (#2112)
  • Text selection - Shift+Tab bug (#1787)

If you have any feedback please get in touch.

Support for Apple M1 and 35 other fixes

04 Mar 21:55
Compare
Choose a tag to compare

Following the large v2.0.0 feature release we bring a list of bug fixes that correct unexpected issues arising.
The main highlight is support for compiling on the Apple M1 processor, plus various enhancements to dialog resizing.

The list reported issues resolve is as follows:

Changed

  • An Entry with Wrapping=fyne.TextWrapOff no longer blocks scroll events from
    a parent

Fixed

  • Error compiling fyne on Apple M1 arm64 (#1739)
  • Dialog.Resize() has no effect if called before Dialog.Show() (#1863)
  • SelectTab does not always correctly set the blue underline to the selected tab
    (#1872)
  • Entry Validation Broken when using Data binding (#1890)
  • android runtime error with fyne.dialog (#1896)
  • List widget panic when refreshing after changing content length (#1864)
  • Pointer and cursor misalignment in widget.Entry (#1937)
  • SIGSEGV Sometimes When Closing a Program by Clicking a Button (#1604)
  • Advanced Color Picker shows Black for custom primary color as RGBA (#1970)
  • Canvas.Focus() before window visible causes application to crash (#1893)
  • Menu over Content (#1973)
  • Cells are not getting draw in correct location after column resize. (#1951)
  • Possible panic when selecting text in a widget.Entry (#1983)
  • Form validation doesn't enable submit button (#1965)
  • Creating a window shows it before calling .Show() and .Hide() does not work (#1835)
  • Dialogs are not refreshed correctly on .Show() (#1866)
  • Failed creating setting storage : no such directory (#2023)
  • Erroneous custom filter types not supported error on mobile (#2012)
  • High importance button show no hovered state (#1785)
  • List widget does not render all visible content after content data gets shorter (#1948)
  • Calling Select on List before draw can crash (#1960)
  • Dialog not resizing in newly created window (#1692)
  • Dialog not returning to requested size (#1382)
  • Entry without scrollable content prevents scrolling of outside scroller (#1939)
  • fyne_demo crash after selecting custom Theme and table (#2018)
  • Table widget crash when scrolling rapidly (#1887)
  • Cursor animation sometimes distorts the text (#1778)
  • Extended password entry panics when password revealer is clicked (#2036)
  • Data binding limited to 1024 simultaneous operations (#1838)
  • Custom theme does not refresh when variant changes (#2006)

Data binding, storage repositories and animation take Fyne to the next level!

25 Jan 10:01
Compare
Choose a tag to compare

The v2.0.0 release of Fyne marks a big step in the development of the project. It was a chance to step back, see what was working well and what could be improved - and then make the changes in a way that had not been possible whilst maintaining 1.0 compatibility. As a result there are some breaking changes to point the APIs in a better direction for the future. Additionally this means that the import path has now changed to fyne.io/fyne/v2 following the go module convention.

This release also sees the introduction of data binding (that keeps widgets in sync with a data source), storage repositories (allowing developers to connect different types of file stores to our APIs), animation (to give some motion to elements of an application) and a new theme API (that allows more flexible theming of standard components).

The full list of changes follow. Before upgrading an existing project please be sure to read the upgrading doc for information about relevant changes.

Changes that are not backward compatible

The import path is now fyne.io/fyne/v2 - be sure to update all files when you are ready to make the update.

  • Coordinate system to float32

    • Size and Position units were changed from int to float32
    • Text.TextSize moved to float32 and fyne.MeasureText now takes a float32 size parameter
    • Removed Size.Union (use Size.Max instead)
    • Added fyne.Delta for difference-based X, Y float32 representation
    • DraggedEvent.DraggedX and DraggedY (int, int) to DraggedEvent.Dragged (Delta)
    • ScrollEvent.DeltaX and DeltaY (int, int) moved to ScrollEvent.Scrolled (Delta)
  • Theme API update

    • fyne.Theme moved to fyne.LegacyTheme and can be load to a new theme using theme.FromLegacy
    • A new, more flexible, Theme interface has been created that we encourage developers to use
  • The second parameter of theme.NewThemedResource was removed, it was previously ignored

  • The desktop.Cursor definition was renamed desktop.StandardCursor to make way for custom cursors

  • Button Style and HideShadow were removed, use Importance

  • iOS apps preferences will be lost in this upgrade as we move to more advanced storage

  • Dialogs no longer show when created, unless using the ShowXxx convenience methods

  • Entry widget now contains scrolling so should no longer be wrapped in a scroll container

  • Removed deprecated types including:

    • dialog.FileIcon (now widget.FileIcon)
    • widget.Radio (now widget.RadioGroup)
    • widget.AccordionContainer (now widget.Accordion)
    • layout.NewFixedGridLayout() (now layout.NewGridWrapLayout())
    • widget.ScrollContainer (now container.Scroll)
    • widget.SplitContainer (now container.Spilt)
    • widget.Group (replaced by widget.Card)
    • widget.Box (now container.NewH/VBox, with Children field moved to Objects)
    • widget.TabContainer and widget.AppTabs (now container.AppTabs)
  • Many deprecated fields have been removed, replacements listed in API docs 1.4

Added

  • Data binding API to connect data sources to widgets and sync data
    • Add preferences data binding and Preferences.AddChangeListener
    • Add bind support to Check, Entry, Label, List, ProgressBar and Slider widgets
  • Animation API for handling smooth element transitions
    • Add animations to buttons, tabs and entry cursor
  • Storage repository API for connecting custom file sources
    • Add storage functions Copy, Delete and Move for URI
    • Add CanRead, CanWrite and CanList to storage APIs
  • New Theme API for easier customisation of apps
    • Add ability for custom themes to support light/dark preference
    • Support for custom icons in theme definition
    • New theme.FromLegacy helper to use old theme API definitions
  • Add fyne.Vector for managing x/y float32 coordinates
  • Add MouseButtonTertiary for middle mouse button events on desktop
  • Add canvas.ImageScaleFastest for faster, less precise, scaling
  • Add new dialog.Form that will phase out dialog.Entry
  • Add keyboard control for main menu
  • Add Scroll.OnScrolled event for seeing changes in scroll container
  • Add TextStyle and OnSubmitted to Entry widget
  • Add support for HintText and showing validation errors in Form widget
  • Added basic support for tab character in Entry, Label and TextGrid

Changed

  • Coordinate system is now float32 - see breaking changes above
  • ScrollEvent and DragEvent moved to Delta from (int, int)
  • Change bundled resources to use more efficient string storage
  • Left and Right mouse buttons on Desktop are being moved to MouseButtonPrimary and MouseButtonSecondary
  • Many optimisations and widget performance enhancements
  • Moving to new container.New() and container.NewWithoutLayout() constructors (replacing fyne.NewContainer and fyne.NewContainerWithoutLayout)
  • Moving storage APIs OpenFileFromURI, SaveFileToURI and ListerForURI to Reader, Writer and List functions

Fixed

  • Validating a widget in widget.Form before renderer was created could cause a panic
  • Added file and folder support for mobile simulation support (#1470)
  • Appending options to a disabled widget.RadioGroup shows them as enabled (#1697)
  • Toggling toolbar icons does not refresh (#1809)
  • Black screen when slide up application on iPhone (#1610)
  • Properly align Label in FormItem (#1531)
  • Mobile dropdowns are too low (#1771)
  • Cursor does not go down to next line with wrapping (#1737)
  • Entry: while adding text beyond visible reagion there is no auto-scroll (#912)

Happy new year, here's a 1.4.3 to celebrate

04 Jan 14:36
Compare
Choose a tag to compare

We hope that everyone had a good holiday and enjoyed the festivities.
Now that 2021 is here we are hard back at work, here is the latest bugfix release with a load of tasty fixes for you :).

Fixed

  • Fix crash when showing file open dialog on iPadOS
  • Fix possible missing icon on initial show of disabled button
  • Capturing a canvas on macOS retina display would not capture full resolution
  • Fix the release build flag for mobile
  • Fix possible race conditions for canvas capture
  • Fix tree, so it refreshes visible nodes on Refresh()
  • TabContainer Panic when removing selected tab (#1668)
  • Incorrect clipping behaviour with nested scroll containers (#1682)
  • MacOS Notifications are not shown on subsequent app runs (#1699)
  • Fix the behavior when dragging the divider of split container (#1618)

We are hard at work for the 2.0 release now which should be with you in 3 weeks.