fyne

Cross platform GUI toolkit in Go inspired by Material Design

OTHER License

Stars
23.3K
Committers
176

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
fyne - TextGrid optimisations FreeBSD 13 support and many bug fixes

Published by andydotxyz over 3 years ago

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.

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

Published by andydotxyz over 3 years ago

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.

fyne - Support for Apple M1 and 35 other fixes

Published by andydotxyz over 3 years ago

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)
fyne - Data binding, storage repositories and animation take Fyne to the next level!

Published by andydotxyz almost 4 years ago

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)
fyne - Happy new year, here's a 1.4.3 to celebrate

Published by andydotxyz almost 4 years ago

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.

fyne - Bug fixes to 1.4 release, including macOS release process

Published by andydotxyz almost 4 years ago

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
fyne - Fixes for 1.4 branch including iOS release build completion

Published by andydotxyz almost 4 years ago

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)
fyne - A polished theme and new collections widgets headline our 1.4 release

Published by andydotxyz almost 4 years ago

The 1.4 release is a huge step forward for the Fyne project. as well as refreshing the theme and bringing a host new features
we are introducing a new type of widget - the /Collection Widgets/.
These are designed for high performance display of large data sets as either List, Table or Tree.
As always let us know your feedback so we can keep making the toolkit better!

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

fyne - A month of bug fixes

Published by andydotxyz about 4 years ago

Version 1.3.3 brings many bug fixes and some minor enhancements to the file picker dialog.
Thanks for all the feedback, enjoy this update :)

Added

  • Use icons for file dialog favourites (#1186)
  • Add ScrollContainer ScrollToBottom and ScrollToTop

Changed

  • Make file filter case sensitive (#1185)

Fixed

  • Allow popups to create dialogs (#1176)
  • Use default cursor for dragging scrollbars (#1172)
  • Correctly parse SVG files with missing X/Y for rect
  • Fix visibility of Entry placeholder when text is set (#1193)
  • Fix encoding issue with Windows notifications (#1191)
  • Fix issue where content expanding on Windows could freeze (#1189)
  • Fix errors on Windows when reloading Fyne settings (#1165)
  • Dialogs not updating theme correctly (#1201)
  • Update the extended progressbar on refresh (#1219)
  • Segfault if font fails (#1200)
  • Slider rendering incorrectly when window maximized (#1223)
  • Changing form label not refreshed (#1231)
  • Files and folders starting "." show no name (#1235)
fyne - Smooth enhancements to 1.3

Published by andydotxyz over 4 years ago

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)
fyne - Version 1.3 just 1000 commits later!

Published by andydotxyz over 4 years ago

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)
fyne - 1.2.4 ❤️mobile 😀

Published by andydotxyz over 4 years ago

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)
fyne - Focus on older Android devices

Published by andydotxyz over 4 years ago

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)
fyne - Stability and extended widgets fixes

Published by andydotxyz over 4 years ago

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 :).

fyne - Fixes and improvements to new mobile support

Published by andydotxyz almost 5 years ago

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
fyne - 1.2 brings Mobile Support

Published by andydotxyz almost 5 years ago

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)
fyne - 1.2 Mobile Support pre-release2

Published by andydotxyz almost 5 years ago

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.

fyne - 1.2 Mobile Support pre-release

Published by andydotxyz almost 5 years ago

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.

fyne - Bugfix release 1.1.2

Published by andydotxyz about 5 years ago

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)