fyne-io/fyne
 Watch   
 Star   
 Fork   
3 days ago
fyne

v2.7.4 is bug fixes and performance improvements aplenty

Fixed

  • SIGSEGV in glfwPollEvents after SetMainMenu rebuild with separator items (macOS) (#6264)
  • Rasters created from NewRasterFromImage unexpectedly stretches the image (#6242)
  • Infinite Progress Bar widget will not automatically start until a Refresh() or Start() is called (#6221)
  • TextGrid: MinSize do not work when line number is visible (#6218)
  • InnerWindow drags past MultiWindows border (#6210)
  • Layout issue with fyne.TextWordWrap (#6181)
  • Hangul (Korean) text renders as U+FFFD (�) on Windows in v2.7 (#6146)
  • Android: storage.List(uri) call results in crash when permission has expired (#6117)
  • Fix strange wrapping which results in one char per line
  • Unexpected fyne.Do errors on android (#5664)
  • Local function is not call on the main Fyne runtime on mobile (#5868)
  • Fix Wide Character's width calculation in TextGrid
  • Various system tray fixes
  • Speed improvement in rendering scrolled text
  • Support OpenURL in mobile simulator
  • When using local metadata for go run also check Icon.png

Thanks to all the contributors who helped us with this work - please do report any issues you find on GitHub,

2026-02-18 19:41:35
fyne

v2.7.3 - Loads of fixes from around the community

A massive thanks to our community for contributing a lot of fixes for this latest release. The following highlights the main items:

Fixed

  • systray not functional within snap sandbox (systray#64)
  • A dialog with a table. Selecting a cell and closing the dialog produces a Fyne error (#5166)
  • Fix JNI crash due to invalid global reference when accessing Android file streams (#6067)
  • Low frame rate with animated rectangles on 2.7.x (#6040)
  • Random panic when launching the app (#5981)
  • Tree Widget constantly calls IsBranch and ChildrenUIs (#4339)
  • Font scanning fails in Flatpak due to broken symlinks
  • Correct system tray icon on Linux when using SVG
  • Button press animation sometimes leaks outside the bounds of the button (#6096)
  • SVG cannot be loaded if it has currentColor at root element (#6102)
  • Wrapped text is rendered poorly (blurred) (#4390)
  • Blurry text in mobile Linux (#2280)
  • On 2.3.0 text is fuzzy (#3464)
  • Correct presentation of HTML entities when using markdown in RichText
  • Accordion kills CPU by inefficient MinSize implementation (#6108)
  • Tree with no data (with Accordion?) - triggers endless layout loop (#6094)
  • NewRichTextFromMarkdown can't handle nested lists (#6113)

As always please do let us know if you experience any issues. We are now focusing on features for 2.8, but there will probably be one more bugfix release on the 2.7.x branch in a Month.

2026-01-03 04:06:13
fyne

New Year new Fyne release :) - lots of bug fixes

Changed

  • Added Japanese translation

Fixed

  • Crash in accordion (#3966)
  • Extended list does not focus correctly when tapped (#5997)
  • TextGrid: Ensure we are refreshing the correct row (#6023)
  • Entry doesn't lose focus when clicking on button elsewhere (#5107)
  • Mouse clicks missed (#4672)
  • Possible crash when form is truncated when an Entry is focused
  • Alt-Tab'ing should not open MainMenu (#2998)
  • Wayland: ALT key steals focus to the menubar if it exists (#5960)
  • Extending the build-In theme only works fully when theme is set after app has started (#6056)
  • Multi-segment RichText not right aligning correctly (#6060)
2025-11-11 17:00:08
fyne

Speedups and bug fixes since v2.7.0

Fixed

  • Ensure tar files created in cli tool contain a root directory
  • 2.7 regression in GL performance on Mac (#6010)
  • GridWrap keyboard navigation does not change to next row at the end of previous row (#5994)
  • Image border radius not always shown on image fill cover (#5980)
  • Speed up file dialog rendering
2025-10-12 16:53:52
fyne

New canvas objects and rounded corners along with massive speed improvements in v2.7.0

Thanks everyone who made this exciting release possible - apps are faster than ever and we have great new Arc and Polygon features as well as new corner radius features!

Added

  • Canvas types: Arc, Polygon, Square (and Rectangle.Aspect)
  • "Cover" image fill
  • Fully rounded corner radius ("pill" rectangle) & per-corner
  • Image corner radius
  • New containers: Navigation & Clip
  • New Embedded driver (for running on non-standard drvices)
  • RowWrap layout
  • Add Generics to List and Tree for data binding
  • Support for IPv6 addresses in URIs
  • Add storage.RemoveAll to recursively delete from a repository
  • Added Portuguese, Russian & Chinese (Simplified)
  • Support left-tap systray to show window (SetSystemTrayWindow)
  • Support JSON theme with fallback
  • Add RichText bullet start number
  • Option to always show Entry validation

Changed

  • Massive performance increases on rendering
  • optimisations galore in data handling, custom themes and TextGrid
  • Smooth infinite progress by reversing animation not just looping
  • Numerous memory leaks and potential race conditions addressed

Fixed

  • Theme Override container cannot be used to override layout paddings (#5019)
  • Tree widget: First selected node stays highlighted after switching selection (#5796)
  • Brave browser: Web app via fyne serve blinks and closes , works correctly in Chrome (and Edge) (#5705)
  • layout.formLayout render canvas.Text as labels and values outside/off minSize area (#5163)
  • Android: EGL_BAD_SURFACE fails to redraw app after OpenFile dialog closes (#3541)
  • Tab and Shift +Tab not behaving as expected on folder dialog (#5974)

New Contributors

Code in v2.7.0 contains work from the following first time contributors:

  • @kruitbosdotdev
  • @cognusion
  • @r3quie
  • @redawl
  • @generikvault
  • @cwarden
  • @Vinci10
  • @cpustejovsky
  • @xfaris
  • @rad756
  • @ystepanoff

Thanks to everyone, in particular our brand new contributors and the amazing core team that make Fyne possible 🎁.

2025-08-21 22:07:32
fyne

Fix compile issues with Go 1.25

This hot fix release resolves only the compile issue with Go v1.25.0 caused by golang.org/x/tools conflict

2025-07-28 18:33:30
fyne

Long list of fixes improve your summer projects

This release was slightly delayed but that means a long list of fixes! Sorry to anyone that was waiting for a fix, but hopefully this update super-powers your holiday hacking.

As well as adding Czechoslovakia translations, the following list of issues were addressed:

  • bounds check panic on undo after ctrl-deleting text on last line from MultiLineEntry (#5714)
  • Entry OnChanged does not get triggered on undo and redo (#5710)
  • SetText in TextGrid leaves trailing content (#5722)
  • Desktop app with system tray hangs on app.Quit (#5724)
  • CenterOnScreen Regression (#5733)
  • TextGrid CursorLocationForPosition reports wrong location when scrolled (#5745)
  • Language is always "en" on macOS (#5760)
  • TextGrid is glitchy when calling SetText on a scrolled container. (#5762)
  • When running for the second time in window.CenterOnScreen(), it will get stuck when running on the main thread (#5766)
  • Text entry widget backspace deletes two characters on Android (#2774)
  • Secondary windows is not refreshed correctly (#5782)
  • Clicking a button rapidly causes the click animation to extend outside of the button (#5785)
  • WASM cursor was ignored
  • Corrected date format for Germany
  • Hide() doesn't work at startup for widgets/containers (#5597)
  • Android GBoard: first character typed into Entry is prefixed with "0" after focus (#5666)
  • Use Scaled Monitor Size For Monitor Detection (#5802)
  • Don't override user choice if a) xdg lookup fails or b) system updates (#5851)
  • Entry with mobile.NumberKeyboard does not Type comma and separators (#5101)
  • Padding value is ignored in ThemeOverride container
  • Performance improvements in TextGrid and object positioning
  • Improvements in WASM rendering performance
2025-05-08 17:14:09
fyne

Bug fixes, remove races and some thread warning refinements

The first point release since v2.6.0 adds a new translation for Russian, removes some false alerts for thread usage and generally improves safety about previous concurrent usage internally.

Fixed

  • Activity indicator is light and not visible when a light theme is active (#5661)
  • Unsafe use of map in RichText on 2.6.0 (#5639)
  • Image translucency causes blurriness on small icons (#5476)
  • Infinite progress bar snapping and doesn't loop nicely (#5433)
  • RichTextSegment SizeName is not SizeNameText by default (#5307)
  • When there is an offline netdrive, the file dialog will freeze (#2411)
  • Correctly reset image cache when Resource goes to nil
  • Data race after migration to v2.6.0 (#5713)
2025-04-10 17:22:44
fyne

With v2.6.0 Fyne is faster than ever and passing Go's race checks too :)

This massive update to Fyne introduces a new threading model that allows it to be a lot faster whilst being free of data races as well! Developers who use background processing will need to make use of the new fyne.Do and anyone with custom widgets that make use of locking to provide thread safety can now remove it as all Fyne callbacks occur on the same goroutine.

Your app may need a few updates (logs will show you where behaviour changes should be added) but can see up to 3x speed increase depending on the number of graphical elements and how frequently they are updated.

Added

  • Added [fyne.Do] and [fyne.DoAndWait] to call from goroutines. This makes it possible to eliminate race conditions.
  • Add "Migrations" section to FyneApp.toml to mark migrations like fyneDo = true
  • Add Calendar and DateEntry widgets
  • Add a third state ([Check.Partial]) to the check widget (#3576)
  • Add ability to select label text using new [Label.Selectable]
  • Support for storage on web driver (#4634)
  • test: Add RenderToMarkup and RenderObjectToMarkup (#5124)
  • Add ability to choose a text size for label widget (#5561)
  • Show soft keyboard on Web build with mobile device (#4394)
  • APIs for testing dialogs (#2771)
  • Add ScrollToOffset functions to collection widgets
  • Add Prepend method to Accordion (#5418)
  • Support Apple intel apps on M1/2 (using Rosetta) (#3971)
  • Ability to turn off re-scaling when a window moves between monitors for Linux (#5164)
  • Add functions to get text location for position (and vice-versa) with a TextGrid
  • Add support for scrolling many lines in TextGrid
  • Add Append function to TextGrid
  • Add Prepend function to Accordion
  • Support custom titles in file dialogs using SetTitleText
  • Add utility methods to handle colouring of SVG images
  • Add preference bind APIs for list (slice) types
  • Added Greek, Ukrainian & Chinese (Simplified) translations

Changed

  • All callbacks from Fyne drivers and widgets now call on the same goroutine
  • Shortcuts on menu items are now called before widget or canvas shortcuts (#2627)
  • ActionItems in an Entry should now match the standard button size
  • Tidy the fyne CLI and moved to tools repo (#4920)
  • When scroll bar is expanded, clicking above or below the bar scrolls up or down (#4922)
  • Add generics to data binding package
  • File picker now ignores case (#5113)
  • Consistent callback order for dialogs - data before OnClosed
  • Improve drop-shadow to show light from top position
  • load markdown images from origin when not a URL
  • Debug now disabled by default for WASM builds
  • Updated theme of inner window borders with circle style and more customisations
  • Change Accordion.OpenAll when used with single-open accordion to open the first item instead of none

Fixed

  • Fixed all known race conditions
  • Decouple clipboard from fyne.Window enhancement (#4418)
  • Odd looking SelectEntry with long PlaceHolder (#4430)
  • Crash when resizing mobile simulator window (#5397)
  • Deadlock when creating widget too fast (#3203)
  • Application crashes on .Resize() (#5206)
  • Linux (ubuntu) menu shortcuts not working blocker (#5355)
  • Slider snaps back to min-value on Android (#5430)
  • SoftwareCanvas resize only works properly if it's the last step bug (#5548)
  • Showing a disabled menu items with a non-SVG icon generates Fyne error bug (#5557)
  • Trying to hide subsequently created popups in a goroutine results in Fyne runtime panic (#5564)
  • Table passes negative index to onSelected function (#4917)
  • storage.Move() fails to move directories (#5493)
  • Tree and Table widgets refresh full content on any scroll or resize (#5456)
  • Memory leak from widget renderers never being destroyed blocker (#4903)
  • On MacOS SysTray menu does not show when clicked on an active space in second monitor (#5223)
  • On MacOs systray tooltip does not show when full window app is active (#5282)
  • Panic when opening and closing windows quickly bug (#3280)
  • Goroutines showing same window at similar times can forget size races (#4535)
  • Panic when confirming or dismissing file open dialog races (#3279)
  • richImage may freeze the application in some cases. (#3510)
  • Memory usage increases significantly per character in Entry (#2969)
  • Submenus not working on mobile (#5398)
  • ListWidget with data index out of bounds when modified bound data (#5227)
  • After scrolling, first selection in a list jumps that item to the bottom of the container (#5605)
  • Accordion could have incorrect layout with multiple items open
  • Prevent tapping within a popup from dismissing it, even if non-modal (#5360)
  • Resolved performance issues in text and custom theme handling

This is obviously a big update - please get in touch if you have any questions or challenges adopting this new version. See important upgrade notes at https://docs.fyne.io/api/v2.6/upgrading.

2025-03-13 22:41:56
fyne

v2.5.5 fixes an incompatibility with Go 1.24 WASM build

A small release as we prepare v2.6.0. This update is necessary for any Go 1.24 users who wish to deploy WASM.