All Versions
28
Latest Version
2.1
Avg Release Cycle
31 days
Latest Release
28 days ago

Changelog History
Page 1

  • v2.1 Changes

    September 17, 2021

    ➕ 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
  • v2.0.4 Changes

    August 06, 2021

    🔄 Changed

    • Disable Form labels when the element it applys 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
  • v2.0.3 Changes

    April 30, 2021

    🛠 Fixed

    • 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)
  • v2.0.2 Changes

    April 01, 2021

    🔄 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)
  • v2.0.1 Changes

    March 04, 2021

    🔄 Changed

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

    🛠 Fixed

    • 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)
    • 🛠 Fix background colour not applying until theme change
    • android runtime error with fyne.dialog (#1896)
    • 🛠 Fix scale calculations for Wayland phones (PinePhone)
    • Correct initial state of entry validation
    • 🛠 fix entry widget mouse drag selection when scrolled
    • List widget panic when refreshing after changing content length (#1864)
    • 🛠 Fix image caching that was too agressive on resize
    • 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)
    • Error compiling fyne on Apple M1 arm64 (#1739)
    • 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)
  • v2.0 Changes

    January 22, 2021

    🔄 Changes that are not backward compatible

    These changes may break some apps, please read the ⬆️ upgrading doc for more info ⚡️ The import path is now fyne.io/fyne/v2 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)
  • v1.4.3 Changes

    January 04, 2021

    🛠 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
    • 👌 Improvements to fyne get command downloader
    • 🛠 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)
  • v1.4.2 Changes

    December 09, 2020

    🛠 In this bugfix release we delivered a number of improvements to the fyne command that give more
    🚀 control when building releases and completes the code signing of macOS apps for the App Store as well!

    🛠 A number of other fixes including improvements to Entry validation and Android keyboards are included as well.

    ➕ Added

    • 🏗 [fyne-cli] Add support for passing custom build tags (#1538)

    🔄 Changed

    • ⚙ Run validation on content change instead of on each Refresh in widget.Entry

    🛠 Fixed

    • [fyne-cli] Android: allow to specify an inline password for the keystore
    • 🛠 Fixed Card widget MinSize (#1581)
    • 🛠 Fix missing release tag to enable BuildRelease in Settings.BuildType()
    • Dialog shadow does not resize after Refresh (#1370)
    • Android Duplicate Number Entry (#1256)
    • 👌 Support older macOS by default - back to 10.11 (#886)
    • 🚀 Complete certification of macOS App Store releases (#1443)
    • 🛠 Fix compilation errors for early stage Wayland testing
    • 🛠 Fix entry.SetValidationError() not working correctly
  • v1.4.1 Changes

    November 20, 2020

    🚀 After a successful v1.4.0 release we wanted to clear up a few bugs and add some items that didn't get there in time :).
    The highlights for many developers will be:

    • 🚀 iOS App Store uploads now successful using "fyne release" command
    • 🍎 macOS menu bar initially doesn't respond to mouse input in Catalina
    • ➕ Adding SetColumnWidth for Table

    The full list of changes is as follows:

    🔄 Changed

    • Table columns can now be different sizes using SetColumnWidth
    • Avoid unnecessary validation check on Refresh in widget.Form

    🛠 Fixed

    • Tree could flicker on mouse hover (#1488)
    • Content of table cells could overflow when sized correctly
    • file:// based URI on Android would fail to list folder (#1495)
    • 🚀 Images in iOS release were not all correct size (#1498)
    • iOS compile failed with Go 1.15 (#1497)
    • 🏁 Possible crash when minimising app containing List on Windows
    • File chooser dialog ignores drive Z (#1513)
    • Entry copy/paste is crashing on android 7.1 (#1511)
    • 🏁 Fyne package creating invalid windows packages (#1521)
    • 🍎 Menu bar initially doesn't respond to mouse input on macOS (#505)
    • iOS: Missing CFBundleIconName and asset catalog (#1504)
    • 🍎 CenterOnScreen causes crash on MacOS when called from goroutine (#1539)
    • desktop.MouseHover Button state is not reliable (#1533)
    • 🎉 Initial validation status in widget.Form is not respected
    • 🛠 Fix nil reference in disabled buttons (#1558)
  • v1.4 Changes

    November 01, 2020

    ➕ Added (highlights)

    • List (#156), Table (#157) and Tree collection Widgets
    • Card, FileItem, Separator widgets
    • ColorPicker dialog
    • 👉 User selection of primary colour
    • 📦 Container API package to ease using layouts and container widgets
    • ➕ Add input validation
    • ListableURI for working with directories etc
    • ➕ Added PaddedLayout

    • Window.SetCloseIntercept (#467)

    • Canvas.InteractiveArea() to indicate where widgets should avoid

    • TextFormatter for ProgressBar

    • FileDialog.SetLocation() (#821)

    • ➕ Added dialog.ShowFolderOpen (#941)

    • 👌 Support to install on iOS and android with 'fyne install'

    • 👌 Support asset bundling with go:generate

    • ➕ Add fyne release command for preparing signed apps

    • ➕ Add keyboard and focus support to Radio and Select widgets

    🔄 Changed

    • ⚡️ Theme update - new blue highlight, move buttons to outline
    • ⚡️ Android SDK target updated to 29
    • 🌲 Mobile log entries now start "Fyne" instead of "GoLog"
    • Don't expand Select to its largest option (#1247)
    • Button.HideShadow replaced by Button.Importance = LowImportance

    • 🗄 Deprecate NewContainer in favour of NewContainerWithoutLayout

    • 🗄 Deprecate HBox and VBox in favour of new container APIs

    • 🚚 Move Container.AddObject to Container.Add matching Container.Remove

    • 🚚 Start move from widget.TabContainer to container.AppTabs

    • Replace Radio with RadioGroup

    • 🗄 Deprecate WidgetRenderer.BackgroundColor

    🛠 Fixed

    • 👌 Support focus traversal in dialog (#948), (#948)
    • ➕ Add missing AbsolutePosition in some mouse events (#1274)
    • Don't let scrollbar handle become too small
    • Ensure tab children are resized before being shown (#1331)
    • 💻 Don't hang if OpenURL loads browser (#1332)
    • Content not filling dialog (#1360)
    • Overlays not adjusting on orientation change in mobile (#1334)
    • 🛠 Fix missing key events for some keypad keys (#1325)
    • 🐧 Issue with non-english folder names in Linux favourites (#1248)
    • 🛠 Fix overlays escaping screen interactive bounds (#1358)
    • Key events not blocked by overlays (#814)
    • ⚡️ Update scroll container content if it is changed (#1341)
    • Respect SelectEntry datta changes on refresh (#1462)
    • Incorrect SelectEntry dropdown button position (#1361)
    • don't allow both single and double tap events to fire (#1381)
    • 🛠 Fix issue where long or tall images could jump on load (#1266, #1432)
    • Weird behaviour when resizing or minimizing a ScrollContainer (#1245)
    • 🛠 Fix panic on NewTextGrid().Text()
    • 🛠 Fix issue where scrollbar could jump after mousewheel scroll
    • ➕ Add missing raster support in software render
    • Respect GOOS/GOARCH in fyne command utilities
    • 🏗 BSD support in build tools
    • SVG Cache could return the incorrect resource (#1479)

    • 🐎 Many optimisations and widget performance enhancements

    • 🛠 Various fixes to file creation and saving on mobile devices