Skip to content

Releases: fyne-io/fyne

Smooth enhancements to 1.3

08 Jul 21:21
Compare
Choose a tag to compare

Release v1.3.2 provides much smoother resize and refresh of windows and scroll containers.
There are also various other bug fixes and improvements including the following highlights:

Added

  • Linux packaged apps now include a Makefile to aid install

Changed

  • Fyne package supports specific architectures for Android
  • Reset missing textures on refresh
  • Custom confirm callbacks now called on implicitly shown dialogs
  • SelectEntry can update drop-down list during OnChanged callback
  • TextGrid whitespace color now matches theme changes
  • Order of Window Resize(), SetFixedSize() and CenterOnScreen() does no matter before Show()
  • Containers now refresh their visuals as well as their Children on Refresh()

Fixed

  • Capped StrokeWidth on canvas.Line (#831)
  • Canvas lines, rectangles and circles do not resize and refresh correctly
  • Black flickering on resize on MacOS and OS X (possibly not on Catalina) (#1122)
  • Crash when resizing window under macOS (#1051, #1140)
  • Set SetFixedSize to true, the menus are overlapped (#1105)
  • Ctrl+v into text input field crashes app. Presumably clipboard is empty (#1123, #1132)
  • Slider default value doesn't stay inside range (#1128)
  • The position of window is changed when status change from show to hide, then to show (#1116)
  • Creating a windows inside onClose handler causes Fyne to panic (#1106)
  • Backspace in entry after SetText("") can crash (#1096)
  • Empty main menu causes panic (#1073)
  • Installing using fyne install on Linux now works on distrubutions that don't use /usr/local
  • Fix recommendations from staticcheck
  • Unable to overwrite file when using dialog.ShowFileSave (#1168)

Version 1.3 just 1000 commits later!

05 Jun 17:12
Compare
Choose a tag to compare

After a lot of hard work (over 1000 commits) by our hard working team (including many new contributors)
we are excited to announce our v1.3 release!

The main API additions are file dialogs for opening files across all our platforms (though on mobile save will arrive a little later), simple notifications to alert your users, some cross-platform file IO handling and new widgets including Accordion, SplitContainer and TextGrid.

We also added splash windows, image scaling configuration and the ability to set cursors and keyboard hints where platforms support that. Please dive in and let us know how you find this huge update.

Added

  • File open and save dialogs (#225)
  • Add notifications support (#398)
  • Add text wrap support (#332)
  • Add Accordion widget (#206)
  • Add TextGrid widget (#115)
  • Add SplitContainer widget (#205)
  • Add new URI type and handlers for cross-platform data access
  • Desktop apps can now create splash windows
  • Add ScaleMode to images, new ImageScalePixels feature for retro graphics
  • Allow widgets to influence mouse cursor style (#726)
  • Support changing the text on form submit/cancel buttons
  • Support reporting CapsLock key events (#552)
  • Add OnClosed callback for Dialog
  • Add new image test helpers for validating render output
  • Support showing different types of soft keyboard on mobile devices (#971, #975)

Changed

  • Upgraded underlying GLFW library to fix various issues (#183, #61)
  • Add submenu support and hover effects (#395)
  • Default to non-premultiplied alpha (NRGBA) across toolkit
  • Rename FixedGridLayout to GridWrapLayout (deprecate old API) (#836)
  • Windows redraw and animations continue on window resize and move
  • New...PopUp() methods are being replaced by Show...Popup() or New...Popup().Show()
  • Apps started on a goroutine will now panic as this is not supported
  • On Linux apps now simulate 120DPI instead of 96DPI
  • Improved fyne_settings scale picking user interface
  • Reorganised fyne_demo to accomodate growing collection of widgets and containers
  • Rendering now happens on a different thread to events for more consistent drawing
  • Improved text selection on mobile devices

Fixed (highlights)

  • Panic when trying to paste empty clipboard into entry (#743)
  • Scale does not match user configuration in Windows 10 (#635)
  • Copy/Paste not working on Entry Field in Windows OS (#981)
  • Select widgets with many options overflow UI without scrolling (#675)
  • android: typing in entry expands only after full refresh (#972)
  • iOS app stops re-drawing mid frame after a while (#950)
  • Too many successive GUI updates do not properly update the view (904)
  • iOS apps would not build using Apple's new certificates
  • Preserve aspect ratio in SVG stroke drawing (#976)
  • Fixed many race conditions in widget data handling
  • Various crashes and render glitches in extended widgets
  • Fix security issues reported by gosec (#742)

1.2.4 ❤️mobile 😀

13 Apr 08:32
Compare
Choose a tag to compare

The 1.2.4 release brings on improvements on previous 1.2 releases and in particular focuses on mobile runtime.
Fyne apps will now layout inside the screen "safe area" so no more gaps or overlaps with soft buttons or cutouts.
Also we have added clipboard integration for iOS and Android and fixed issues with some Android virtual keyboards.

This release also adds some helpful tools to the fyne command to help manage code and report new issues as this is the last 1.2.x release as we focus on the larger 1.3 feature release.

Added

  • Added Direction field to ScrollContainer and NewHScrollContainer, NewVScrollContainer constructors (#763)
  • Added Scroller.SetMinSize() to enable better defaults for scrolled content
  • Added "fyne vendor" subcommand to help packaging fyne dependencies in projects
  • Added "fyne version" subcommand to help with bug reporting (#656)
  • Clipboard (cut/copy/paste) is now supported on iOS and Android (#414)
  • Preferences.RemoveValue() now allows deletion of a stored user preference

Changed

  • Report keys based on name not key code - fixes issue with shortcuts with AZERTY (#790)

Fixed

  • Mobile builds now support go modules (#660)
  • Building for mobile would try to run desktop build first
  • Mobile apps now draw the full safe area on a screen (#799)
  • Preferences were not stored on mobile apps (#779)
  • Window on Windows is not controllable after exiting FullScreen mode (#727)
  • Soft keyboard not working on some Samsung/LG smart phones (#787)
  • Selecting a tab on extended TabContainer doesn't refresh button (#810)
  • Appending tab to empty TabContainer causes divide by zero on mobile (#820)
  • Application crashes on startup (#816)
  • Form does not always update on theme change (#842)

Focus on older Android devices

02 Mar 12:44
Compare
Choose a tag to compare

The 1.2.3 release adds to previous 1.2 releases with some new features and a focus on improving
support for older and low powered Android devices.
This improves support for preparing mobile app releases using the builtin tools.

Added

  • Add media and volume icons to default themes (#649)
  • Add Canvas.PixelCoordinateForPosition to find pixel locations if required
  • Add ProgressInfinite dialog

Changed

  • Warn if -executable or -sourceDir flags are used for package on mobile (#652)
  • Update scale based on device for mobile apps
  • Windows without a title will now be named "Fyne Application"
  • Revert fix to quit mobile apps - this is not allowed in guidelines

Fixed

  • App.UniqueID() did not return current app ID
  • Fyne package ignored -name flag for ios and android builds (#657)
  • Possible crash when appending tabs to TabContainer
  • FixedSize windows not rescaling when dragged between monitors (#654)
  • Fix issues where older Android devices may not background or rotate (#677)
  • Crash when setting theme before window content set (#688)
  • Correct form extend behaviour (#694)
  • Select drop-down width is wrong if the drop-down is too tall for the window (#706)

Stability and extended widgets fixes

29 Jan 18:01
Compare
Choose a tag to compare

The 1.2.2 release covers mostly the cases where some widgets did not extend correctly or could cause crashes.
We have also updated the Scale handling so that it better matches operating system specifics -
the user value is now relative to the OS default, which should mean that in all places setting "1.0" will mean that Fyne apps appear at the same scale as existing apps.
There are also some new APIs added following requests.

Added

  • Add SelectedText() function to Entry widget
  • New mobile.Device interface exposing ShowVirtualKeyboard() (and Hide...)

Changed

  • Scale calculations are now relative to system scale - the default "1.0" matches the system
  • Update scale on Linux to be "auto" by default (and numbers are relative to 96DPI standard) (#595)
  • When auto scaling check the monitor in the middle of the window, not top left
  • bundled files now have a standard header to optimise some tools like go report card
  • Shortcuts are now handled by the event queue - fixed possible deadlock

Fixed

  • Scroll horizontally when holding shift key (#579)
  • Updating text and calling refresh for widget doesn't work (#607)
  • Corrected visual behaviour of extended widgets including Entry, Select, Check, Radio and Icon (#615)
  • Entries and Selects that are extended would crash on right click.
  • PasswordEntry created from Entry with Password = true has no revealer
  • Dialog width not always sufficient for title
  • Pasting unicode characters could panic (#597)
  • Setting theme before application start panics on macOS (#626)
  • MenuItem type conflicts with other projects (#632)

As always please report any new issues that are found. We are busy working away on 1.3 now but we want to continue to improve the existing code as well :).

Fixes and improvements to new mobile support

24 Dec 23:01
Compare
Choose a tag to compare

A selection of bug fixes and improvements following our 1.2 release.

Added

  • Add TouchDown, TouchUp and TouchCancel API in driver/mobile for device specific events
  • Add support for adding and removing tabs from a tab container (#444)

Fixed

  • Issues when settings changes may not be monitored (#576)
  • Layout of hidden tab container contents on mobile (#578)
  • Mobile apps would not quit when Quit() was called (#580)
  • Shadows disappeared when theme changes (#589)
  • iOS apps could stop rendering after many refreshes (#584)
  • Fyne package could fail on Windows (#586)
  • Horizontal only scroll container may not refresh using scroll wheel

1.2 brings Mobile Support

13 Dec 15:36
Compare
Choose a tag to compare

The 1.2 release of the fyne toolkit marks an exciting milestone in the project as we now support building for iOS and Android devices as well as macOS, Windows, Linux and BSD. We also vastly improved the developer experience for creating your own widgets and extending existing widgets to add custom functionality.

This update follows nearly 500 commits of hard work, the following list is an overview of the main points.

Added

  • Mobile support - iOS and Android, including "fyne package" command
  • Support for OpenGL ES and embedded linux
  • New BaseWidget for building custom widgets
  • Support for diagonal gradients
  • Global settings are now saved and can be set using the new fyne_settings app
  • Support rendering in Go playground using playground.Render() helpers
  • "fyne install" command to package and install apps on the local computer
  • Add horizontal scrolling to ScrollContainer
  • Add preferences API
  • Add show/hide password icon when created from NewPasswordEntry
  • Add NewGridLayoutWithRows to specify a grid layout with a set number of rows
  • Add NewAdaptiveGridLayout which uses a column grid layout when horizontal and rows

Changed

  • New Logo! Thanks to Storm for his work on this :)
  • Input events now execute one at a time to maintain the correct order
  • FYNE_THEME and FYNE_SCALE are now overrides to the global configuration
  • The first opened window no longer exits the app when closed (unless none others are open or Window.SetMaster() is called)
  • "fyne package" now defaults icon to "Icon.png" so the parameter is optional
  • Calling ExtendBaseWidget() sets up the renderer for extended widgets
  • Bundled images optimised to save space
  • Optimise rendering to reduce refresh on TabContainer and ScrollContainer

Fixed

  • Correct the colour of Entry widget cursor if theme changes
  • Error where widgets created before main() function could crash (#490)
  • App.Run apnics if called without a window (#527)
  • Support context menu for disabled entry widgets (#488)

1.2 Mobile Support pre-release2

10 Dec 20:46
Compare
Choose a tag to compare
Pre-release

This release candidate for 1.2 adds the following items over and above the beta1 release 2 weeks ago.

Added

  • Add show/hide password icon when created from NewPasswordEntry
  • Add NewGridLayoutWithRows to specify a grid layout with a set number of rows
  • Add NewAdaptiveGridLayout which uses a column grid layout when horizontal and rows

Changed

  • Bundled images optimised to save space
  • Optimise rendering to reduce refresh on TabContainer and ScrollContainer

Fixed

  • Support context menu for disabled entry widgets (#488)

As before please report any bugs so we can polish the final 1.2 release.

1.2 Mobile Support pre-release

28 Nov 23:11
Compare
Choose a tag to compare
Pre-release

This is an exciting chance to try out the new mobile functionality and code against the new custom widget support before it is finally released later this year.

Prerelease

This is a prerelease and does not represent a complete solution to all the features listed below.
Still to be implemented before the 1.2 final release are:

  • Keyboard support for iOS and Android
  • Clipboard integration for iOS and Android

Added

  • Mobile support - iOS and Android, including "fyne package" command
  • Support for OpenGL ES and embedded linux
  • New BaseWidget for building custom widgets
  • Support for diagonal gradients
  • Global settings are now saved and can be set using the new fyne_settings app
  • Support rendering in Go playground using playground.Render() helpers
  • "fyne install" command to package and install apps on the local computer
  • Add horizontal scrolling to ScrollContainer
  • Add preferences API

Changed

  • New Logo! Thanks to Storm for his work on this :)
  • Input events now execute one at a time to maintain the correct order
  • FYNE_THEME and FYNE_SCALE are now overrides to the global configuration
  • The first opened window no longer exits the app when closed (unless none others are open or Window.SetMaster() is called)
  • "fyne package" now defaults icon to "Icon.png" so the parameter is optional
  • Calling ExtendBaseWidget() sets up the renderer for extended widgets

Fixed

  • Correct the colour of Entry widget cursor if theme changes
  • Error where widgets created before main() function could crash (#490)
  • App.Run apnics if called without a window (#527)

Please let us know how you get on using this release and report any issues you find so we can make a great 1.2 release.

Bugfix release 1.1.2

12 Oct 18:29
Compare
Choose a tag to compare

A bug fix release for the 1.1 release branch. This will probably be the final release before we release 1.2 in November.

Changed

  • Default scale value for canvases is now 1.0 instead of Auto (DPI based)

Fixed

  • Correct icon name in linux packages
  • Fullscreen before showing a window works again
  • Incorrect MinSize of FixedGrid layout in some situations
  • Update text size on theme change
  • Text handling crashes (#411, #484, #485)
  • Layout of image only buttons
  • TabItem.Content changes are reflected when refreshing TabContainer (#456)