Skip to content

Releases: fyne-io/fyne

v2.5 introduces international support, system font lookup and completes Wayland and Web support (except file handling)

14 Jul 17:50
Compare
Choose a tag to compare

Added

  • Internationalisation support and translations (#605, #3249)
  • Look up system fonts for glyphs that cannot be found embedded (#2572, #1579)
  • Completed support for Wayland on Linux
  • Completed support for the Web driver (*except file handling)
  • Add support for XDG Desktop Portals when built with -tags flatpak on Linux
  • Activity indicator widget
  • InnerWindow and MultipleWindows containers
  • ThemeOverride container for grouping items with a different theme
  • Add NativeWindow.RunNative to use a native window handle (#4483)
  • Ability to request display stays on - SetDisableScreenBlanking (#4534, #3007)
  • Add Undo/Redo support for widget.Entry (#436)
  • Add AppendMarkdown function to RichText
  • Add option in List to hide separators (#3756)
  • New CustomPaddedLayout for more fine-grained container padding
  • Add SizeName property to Hyperlink widget
  • Support Ctrl+[backspace/delete] to delete the word to the left or right of the cursor
  • Add IntToFloat (and FloatToInt) in bindings Data binding (#4666)
  • Add ScrollToOffset/GetScrollOffset APIs for collection widgets
  • Add ColumnCount API to GridWrap widget
  • Disable and Enable for Slider widget (#3551)
  • Function Remove added to List bindings (#3100)
  • Form layout can now be vertical (labels above field) or adaptive for mobile
  • Add support for Bold, Italic and Underline for TextGrid (#1237)
  • Add support for setting a custom resource as the font source for text (#808)
  • New test functions NewTempApp, NewTempWindow and TempWidgetRenderer to free resources automatically

Changed

  • Fyne now depends on Go 1.19 at a minimum
  • Round the corners of scroll bars with new theme value
  • Improve contrast of text on highlight background colours
  • Layout of iOS and Android apps will adapt when keyboard appears (#566, #2371)
  • FyneApp.toml will now be loaded with go build (#4688)
  • Text wrapping will now wrap in dialogs (#2602)
  • System tray and tray menu icons on will now match theme on macOS (#4549)
  • Triple clicking in an Entry widget now selects current line (#4328)
  • About menu items will now override the macOS default About
  • System tray no longer shows tooltips (until we have full support)
  • Double tapping an item in a file dialog now selects and returns
  • Widgets should now use theme.ForWidget() instead of theme.Default() or static helpers

Fixed

  • Kannada characters not rendering correctly (#2654)
  • Notifications are not working on iOS (#4966)
  • Incorrect scaling on Steam Deck screen Accessibility (#4896)
  • Sometimes the last list row that should be visible doesn't show (#4909)
  • RichText swallowing whitespace after Markdown links (#4613, #4340)
  • Disabled app tabs can still be selected in popup menu (#4935)
  • Don't show title when mouse hover on Systray menu (#4916)
  • Trying to access a URL through canvas.NewImageFromURI() in a test results in a panic (#4863)
  • Don't insert tab character in Entry when Shift+Tab typed
  • Select Does Not Gain Focus When Tapped (#4767)
  • binding.Untyped crashes when set to nil bug (#4807)
  • Label and Slider not aligned in a FormItem (#4714)
  • Windows: App Icon in Notification (#2592)
  • Fix possible writing of empty preference data in some quit events
  • Allow application to set default view (list/grid) of file dialog before showing it (#4595)
  • Fix ScrollToOffset when viewport is larger than content size
  • Incorrect row header width in widget.Table (#4370)
  • Add missed truncation mode for hyperlink (#4335)
  • AppTab does not display blue indicator line if you create it empty and then Append items to it later.
  • Many optimisations in animation, draw speed, layout and widget size calculations

Optimisations, storage enhancements and fixes arrive in v2.4.5

15 Apr 11:03
Compare
Choose a tag to compare

This bugfix release has a lot of great improvements, with a focus on mobile storage fixes and resolving some memory leaks.

  • iOS files write would fail when over 16KB
  • storage.Delete not supported on Android/iOS (#2120)
  • layout.formLayout do not handle canvas.Text well in second column (#4665)
  • Fix building with ios17.4 (#4741)
  • Support template icon for system tray menu icons
  • Fix recognition of missing XDG user directories (#4650)
  • FileDialog.SetOnClosed not always working (#4651)
  • Upgrade GLFW for performance improvements and bug fixes
  • Multiple select popups can crash during background operations (#4730)
  • Controlling a negative slider with the left arrow key blocks after 8 steps (#4736)
  • cmd/fyne: command "get" is broken with Go 1.22 (#4684)
  • Race condition during system tray menu refresh (#4697)
  • Fyne release on Linux does not set Metadata().Release to true (#4711)
  • RichText leaks memory when replacing segments (#4723)

As always do let us know how you get on, we are now pushing forward with v2.5.0.

Lots of bug fixes and speed improvements for 2.4

13 Feb 19:10
Compare
Choose a tag to compare

There is a lot packed into this release - your app will be faster and more robust than ever before!

  • Spaces could be appended to linux Exec command during packaging
  • Secondary mobile windows would not size correctly when padded
  • Setting Icon.Resource to nil will not clear rendering
  • Dismiss iOS keyboard if "Done" is tapped
  • Large speed improvement in Entry and GridWrap widgets
  • tests fail with macOS Assertion failure in NSMenu (#4572)
  • Fix image test failures on Apple Silicon
  • High CPU use when showing CustomDialogs (#4574)
  • Entry does not show the last (few) changes when updating a binding.String in a fast succession (#4082)
  • Calling Entry.SetText and then Entry.Bind immediately will ignore the bound value (#4235)
  • Changing theme while application is running doesn't change some parameters on some widgets (#4344)
  • Check widget: hovering/tapping to the right of the label area should not activate widget (#4527)
  • Calling entry.SetPlaceHolder inside of OnChanged callback freezes app (#4516)
  • Hyperlink enhancement: underline and tappable area shouldn't be wider than the text label (#3528)
  • Fix possible compile error from go-text/typesetting

Let us know if you have any feedback on this latest release :).

Happy holidays and enjoy a better Fyne for your coding projects :)

24 Dec 13:49
Compare
Choose a tag to compare

We have been working on fixes and optimisations in the Fyne project and are happy to list the following as resolved for v2.4.3.

Fixed

  • Fix OpenGL init for arm64 desktop devices
  • System tray icon on Mac is showing the app ID (#4416)
  • Failure with fyne release -os android/arm (#4174)
  • Android GoBack with forcefully close the app even if the keyboard is up (#4257)
  • *BSD systems using the wrong (and slow) window resize
  • Optimisations to reduce memory allocations in List, GridWrap, driver and mime type handling
  • Reduce calls to C and repeated size checks in painter and driver code

As always we hope this helps you make better software, faster - let us know if you have any feedback.

Lots of fixes and display improvements for v2.4.1

09 Oct 13:31
Compare
Choose a tag to compare

It's a long list of improvements to this point release, spread across the entire toolkit:

  • Left key on tree now collapses open branch
  • Avoid memory leak in Android driver code
  • Entry Field on Android in Landscape Mode Shows "0" (#4036)
  • DocTabs Indicator remains visible after last tab is removed (#4220)
  • Some SVG resources don't update appearance correctly with the theme (#3900)
  • Fix mobile simulation builds on OpenBSD
  • Fix alignment of menu button on mobile
  • Fix Compilation with Android NDK r26
  • Clicking table headers causes high CPU consumption (#4264)
  • Frequent clicking on table may cause the program to not respond (#4210)
  • Application stops responding when scrolling a table (#4263)
  • Possible crash parsing malformed JSON color (#4270)
  • NewFolderOpen: incomplete filenames (#2165)
  • Resolve issue where storage.List could crash with short URI (#4271)
  • Application crash when fast clicking the folders inside the file dialog (#4260)
  • TextTruncateEllipsis abnormally truncates strings with multi-byte UTF-8 characters (#4283)
  • Last character doesn't appear in Select when there is a special character (#4293)
  • Resolve random crash in DocTab (#3909)
  • Selecting items from a list caused the keyboard to popup on Android (#4236)

Thanks everyone for your help, enjoy this new release.

So many new features like rounded corners, emojis, table headers and a load more make v2.4.0!

01 Sep 20:21
Compare
Choose a tag to compare

2.4.0 - 1 September 2023

Added

  • Rounded corners in rectangle (#1090)
  • Support for emoji in text
  • Layout debugging (with -tags debug build flag) (#3314)
  • GridWrap collection widget
  • Add table headers (#1658, #3594)
  • Add mobile back button handling (#2910)
  • Add option to disable UI animations (#1813)
  • Text truncation ellipsis (#1659)
  • Add support for binding tree data, include new NewTreeWithData
  • Add support for OpenType fonts (#3245)
  • Add Window.SetOnDropped to handle window-wide item drop on desktop
  • Add lists to the types supported by preferences API
  • Keyboard focus handling for all collection widgets
  • Add APIs for refreshing individual items in collections (#3826)
  • Tapping slider moves it to that position (#3650)
  • Add OnChangeEnded callback to Slider (#3652)
  • Added keyboard controls to Slider
  • Add NewWarningThemedResource and NewSuccessThemedResource along with NewColoredResource (#4040)
  • Custom hyperlink callback for rich text hyperlinks (#3335)
  • Added dialog.NewCustomWithoutButtons, with a SetButtons method (#2127, #2782)
  • Added SetConfirmImportance to dialog.ConfirmDialog.
  • Added FormDialog.Submit() to close and submit the dialog if validation passes
  • Rich Text image alignment (#3810)
  • Bring back theme.HyperlinkColor (#3867)
  • Added Importance field on Label to color the text
  • Navigating in entry quickly with ctrl key (#2462)
  • Support .desktop file metadata in FyneApp.toml for Linux and BSD
  • Support mobile simulator on FreeBSD
  • Add data binding boolean operators Not, And and Or
  • Added Entry.Append, Select.SetOptions, Check.SetText, FormDialog.Submit
  • Add ShowPopUpAtRelativePosition and PopUp.ShowAtRelativePosition
  • Add desktop support to get key modifiers with CurrentKeyModifiers
  • Add geometry helpers NewSquareSize and NewSquareOffsetPos
  • Add --pprof option to fyne build commands to enable profiling
  • Support compiling from Android (termux)

Changed

  • Go 1.17 or later is now required.
  • Theme updated for rounded corners on buttons and input widgets
  • widget.ButtonImportance is now widget.Importance
  • The Max container and layout have been renamed Stack for clarity
  • Refreshing an image will now happen in app-thread not render process, apps may wish to add async image load
  • Icons for macOS bundles are now padded and rounded, disable with "-use-raw-icon" (#3752)
  • Update Android target SDK to 33 for Play Store releases
  • Focus handling for List/Tree/Table are now at the parent widget not child elements
  • Accordion widget now fills available space - put it inside a VBox container for old behavior (#4126)
  • Deprecated theme.FyneLogo() for later removal (#3296)
  • Improve look of menu shortcuts (#2722)
  • iOS and macOS packages now default to using "XCWildcard" provisioning profile
  • Improving performance of lookup for theme data
  • Improved application startup time

Fixed

  • Rendering performance enhancements
  • dialog.NewProgressInfinite is deprecated, but dialog.NewCustom isn't equivalent
  • Mouse cursor desync with Split handle when dragging (#3791)
  • Minor graphic glitch with checkbox (#3792)
  • binding.String===>Quick refresh *b.val will appear with new data reset by a call to OnChange (#3774)
  • Fyne window becomes unresponsive when in background for a while (#2791)
  • Hangs on repeated calls to Select.SetSelected in table. (#3684)
  • Select has wrong height, padding and border (#4142)
  • widget.ImageSegment can't be aligned. (#3505)
  • Memory leak in font metrics cache (#4108)
  • Don't panic when loading preferences with wrong type (#4039)
  • Button with icon has wrong padding on right (#4124)
  • Preferences don't all save when written in CloseIntercept (#3170)
  • Text size does not update in Refresh for TextGrid
  • DocTab selection underline not updated when deleting an Item (#3905)
  • Single line Entry throws away selected text on submission (#4026)
  • Significantly improve performance of large TextGrid and Tree widgets
  • List.ScrollToBottom not scrolling to show the totality of the last Item (#3829)
  • Setting Position1 of canvas.Circle higher than Position2 causes panic. (#3949)
  • Enhance scroll wheel/touchpad scroll speed on desktop (#3492)
  • Possible build issue on Windows with app metadata
  • Form hint text has confusing padding to next widget (#4137)
  • Entry Placeholder Style Only Applied On Click (#4035)
  • Backspace and Delete key Do not Fire OnChanged Event (#4117)
  • Fix ProgressBar text having the wrong color sometimes
  • Window doesn't render when called for the first time from system tray and the last window was closed (#4163)
  • Possible race condition in preference change listeners
  • Various vulnerabilities resolved through updating dependencies
  • Wrong background for color dialog (#4199)

We hope you have a lot of fun with this huge update :).

v2.3.5 - Lots of great fixes from the team and community - thanks!

06 Jun 14:33
Compare
Choose a tag to compare

Thanks so much to everyone that contributed to this release, we are grateful to all of the community and the hard work put in to make this project even better.

  • Panic with unsupported font (#3646)
  • Temporary manifest file not closed after building on Windows
  • Panic when using autogenerated quit menu and having unshown windows (#3870)
  • Using canvas.ImageScaleFastest not working on arm64 (#3891)
  • Disabled password Entry should also disable the ActionItem (#3908)
  • Disabled RadioGroup does not display status (#3882)
  • Negative TableCellID Row (#2857)
  • Make sure we have sufficient space for the bar as well if content is tiny (#3898)
  • Leak in image painter when replacing image.Image source regularly
  • Links in Markdown/Rich Text lists breaks formatting (#2911)
  • Crash when reducing window to taskbar with popup opened (#3877)
  • RichText vertical scroll will truncate long content with horizontal lines (#3929)
  • Custom metadata would not apply with fyne release command
  • Horizontal CheckGroup overlap when having long text (#3005)
  • Fix focused colour of coloured buttons (#3462)
  • Menu separator not visible with light theme (#3814)

That is probably all until v2.4.0 where we have lots of exciting new features.

Memory usage improvements and reducing CPU for item moves

03 May 09:19
Compare
Choose a tag to compare

Lots of memory reductions in this release, mostly around text and theme switching.
Also the internal implementation of a "repaint" when objects move which means we can redraw the canvas using existing caches, saving CPU time on many frames.

Thanks very much to the many contributors who helped to create this fix list:

  • Memory leak when switching theme (#3640)
  • Systray MenuItem separators not rendered in macOS root menu (#3759)
  • Systray leaks window handles on Windows (#3760)
  • RadioGroup miscalculates label widths in horizontal mode (#3386)
  • Start of selection in entry is shifted when moving too fast (#3804)
  • Performance issue in widget.List (#3816)
  • Moving canvas items (e.g. Images) does not cause canvas repaint (#2205)
  • Minor graphic glitch with checkbox (#3792)
  • VBox and HBox using heap memory that was not required
  • Menu hover is slow on long menus

As ever please do let us know if you find any issues. We are now focused on the v2.4.0 release which we will deliver around the middle of this year.

Resolving a possible compilation regression in v2.3.2

24 Mar 15:28
Compare
Choose a tag to compare

The v2.3.2 release accidentally compiles mobile source code during building desktop apps.
This release resolves that to avoid the possible compile time breakage for some operating systems.

Fixed

  • Linux, Windows and BSD builds could fail if gles was missing

Fyne 💙 Apple M2 and better performance

20 Mar 14:26
Compare
Choose a tag to compare

This release marks a great step forward for the Fyne toolkit - completing the work for Apple M2 issues and adding optimisations, and various many additional bug fixes.

Fixed

  • Fyne does not run perfectly on ARM-based MacOS platforms (#3639) *
  • Panic on closing window in form submit on Мac M2 (#3397) *
  • Wobbling slider effect for very small steps (#3648)
  • Fix memory leak in test canvas refresh
  • Optimise text texture memory by switching to single channel
  • Packaging an android fyne app that uses tags can fail (#3641)
  • NewAdaptiveGrid(0) blanks app window on start until first resize on Windows (#3669)
  • Unnecessary refresh when sliding Split container
  • Linux window resize refreshes all content
  • Themed and unthemed svg resources can cache collide
  • When packaging an ampersand in "Name" causes an error (#3195)
  • Svg in ThemedResource without viewBox does not match theme (#3714)
  • Missing menu icons in Windows system tray
  • Systray Menu Separators don't respect the submenu placement (#3642)
  • List row focus indicator disappears on scrolling (#3699)
  • List row focus not reset when row widget is reused to display a new item (#3700)
  • Avoid panic if accidental 5th nil is passed to Border container
  • Mobile simulator not compiling on Apple M1/2
  • Cropped letters in certain cases with the new v2.3.0 theme (#3500)

Many thanks indeed to Dymium for sponsoring an Apple
M2 device which allowed us to complete the marked (*) issues.