- Fixed bug in Android implementation that could result in errors due to prematurely recycled bitmaps
- Added
.list()
to fetch a list of all bundled files - Added
.readBuffer()
to read a bundle as an ArrayBuffer - Added
.extract()
to write a bundled file into a destination path
- A failed to load Image with a Url will now try again when the Url is used again in a new Image
- Added
reload
andretry
JavaScript functions onImage
to allow reloading failed images. - Fixed infinite recursion bug that could happen if a MemoryPolicy is set on a MultiDensityImageSource
- Fixed issue where the animation could become out of sync if the properties on ScrollingAnimation were updated.
- Updated the bundled Freetype library on macOS to now (again) include both 32-bit and 64-bit symbols, which fixes an issue where .NET and preview builds would crash with a SIGILL at startup when running on older Mac models.
- Updated the bundled libjpeg, libpng, Freetype, and SDL2 libaries for macOS to not use AVX instructions, since they are incompatible with the CPUs in some older Mac models. This fixes an issue with SIGILLs in native builds.
- Added feature toggle for implicit
GraphicsView
. If you are making an app using only Native UI disabling the implicitGraphicsView
can increase performance. Disable theGraphicsView
by definingDISABLE_IMPLICIT_GRAPHICSVIEW
when building. For exampleuno build -t=ios -DDISABLE_IMPLICIT_GRAPHICSVIEW
- Fuse.Input.Gesture now only has an internal constructor. This means that external code can't instantiate it. But before, they already couldn't do so in a meaningful way, so this shouldn't really affect any applications.
- Fixed issue where focusing a
<TextInput />
or<TextView />
by tapping it would not update the caret position accordingly.
Activated
,Deactivated
,WhileActive
,WhileInactve
have all been fixed when used inside nested navigation. Previously they would only consider the local navigation, not the entire tree. If the old behavior is still desired you can set thePath="Local"
option on the navigation.Activated
,Deactivated
have been fixed to only trigger when the navigation is again stable. If you'd instead like to trigger the moment the active page changes, which is closest to the previous undefined behavior, setWhen="Immediate"
- The
NavigationPageProxy
use pattern has changed.Rooted
is removed,Unrooted
is nowDispose
, and the constructor takes the parent argument. This encourages a safer use (avoiding leaks).
- Support MapMarker icon anchor X/Y/File properties when setting MapMarkers via JS
- Added
<MapMarker Tapped="{myHandler}"/>
to retain the data context for each tapped marker. - Added
<MapView AllowScroll="false"/>
to disable the user panning and scrolling around. - Fixed a bug causing crashes on iPhone 5s devices when using
ShowMyLocation="true"
- Added
<WebView ScrollEnabled="false"/>
to disable the user panning and scrolling around.
- Uno.Geometry.Box and Uno.Geometry.Ray has been replaced with Fuse.Box and Fuse.Ray.
- Added
QuickUnload
memory policy to keep data in memory for as short as possible.
- Added supported for encoding/decoding images to/from base64 on DotNet platforms, including Windows and Mac OS X.
- Fixes a bug where the app would crash if a databinding resolved to an incompatible type (e.g. binding a number property to a boolean value). (Marshal.TryConvertTo would throw exception instead of fail gracefully).
- Fixed a bug where HLS streams would become zero-sized on iOS.
- added
index
andoffsetIndex
as funtions to get the position of an element inside anEach
- added functions
mod
,even
,odd
, andalternate
to complement the index functions. These allow visually grouping elements on the screen based on their index. - added trigonometric math functions
sin
,cos
,tan
,asin
,acos
,atan
,atan2
,radiansToDegrees
,degreesToRadians
- added math functions
abs
,sqrt
,ceil
,floor
,exp
,exp2
,fract
,log
,log2
,sign
,pow
,round
,trunc
,clamp
- added
lerp
function for linear interpolation between values
- Fixed issue where apps would not redraw when returning to Foreground
- Fixed possible nullref in Scroller that could happen in certain cases while scrolling a ScrollView
- Fixed nullref in Scroll that could happen if there are any pending LostCapture callbacks after the Scroller is Unrooted
- Fixed an issue where the rendering of one element could bleed into the rendering of another element under some very specific circumstances.
- Fixed an issue that would result in a broken layout if a
Sizing="Fill"
was used there wasn't enough space for one column.
- Fixed bug in Container which caused crash when the container had no subtree nodes. This caused the Fuse.MaterialDesign community package to stop working.
- Fixed a bug where we would trigger errors on Android if a live-stream was seeked or paused.
- Fixed an issue when loading images bigger than the maximum texture-size. Instead of failing, the image gets down-scaled so it fits.
This release only upgraded Uno.
- Fixed a bug where elements with many children and some of them were rotated, the rotated elements would appear in the wrong location.
- Fix bug which could cause visual glitches the first time rotating from Portrait to Landscape
- The interfaces
IObservable
,ISubscriber
andIObserver
are no longer public (affects any class that implements them). These were made accidentally public in Fuse 0.36. These need to be internal in order to allow behind-the scenes optimizations going forward.
- Fixes a bug (regression in 0.36) where functions could not be used as data context in event callbacks.
- Fixed a bug where strings like
"20%"
did not marshal correctly toSize
when databound. - Fixed a defect in expression functions
x,y,width,height
, they will not use the correct size if referring to an element that already has a layout
- Changes to the items will not be collected and new items added once per frame. This avoids certain processing bottlenecks. This should not cause any backwards incompatibilties, though the option
Defer="Immediate"
is available to get the previous behavior. Defer="Deferred"
onInstance
/Each
allows the deferred creation of nodes without the need for aDeferred
nodeDeferred
now has an implied priority based on the node depth. Items with equalPriority
will now be ordered based on tree depth: deeper nodes come first.
- A
Page
will now be busy for the first frame (or two) after it is prepared. This will block theNavigator
from starting the transition during those frames, which should improve first frame jerkyness. ThePrepareBusy
property can be set toNone
to disable this behaviour.
- Fixed the behaviour of placeholder text in the text renderer used when targeting desktop. The placeholder text is now always visible when there is no text in the text control, even when it has focus.
- The GeoLocation module no longer throws an exception if there are no listeners to the
"error"
event when there is an error. - Fixed an omission that meant that the old way of listening to GeoLocation events (using
GeoLocation.onChanged = ...
instead of the recommendedEventEmitter
GeoLocation.on("changed", ...)
) did not work.
- The
Stroke
will no longer emit property changed events for its Brush unless it is pinned. This is not anticipated to be an issue for any projects.
- A new static Uno class has been introduced, called
Fuse.Version
. It contains fields for the major, minor and patch-version, as well as a string with the full version number.
- Add implementation for
android.view.TextureView
to better support multiple<GraphicsView />
's and<NativeViewHost />
's on Android.
- In order to fix a memory leak in
Container
the pre-rooting structure was changed. Children of the container will not be children of theSubtree
until rooted. It is not believed this will have any noticable effect; other features, like Trigger, also work this way.
- Extended the ability of gestures at multiple levels in the UI tree to cooperate, or take priority
- SwipeGesture now has priority over ScrollView, even if in an ancestor node
- Edge swipes have priority over directional swipes, regardless of the node they are in
- Removed
SwipeType.Continuous
as it did not work correctly and wouldn't fulfill the known use-case even if it did. Consider usingAuto
instead. - Deprecated public access to the
Scroller
class. This is an internal class and should not be used. All functionality is accessible viaScrollView
- Added
SwipeGesture.GesturePriority
andScrollView.GesturePriority
to adjust priorities - Fixed an issue where a higher level capture where preempt one lower in the UI tree
- The
then
argument toBeginRemoveChild
is now anAction<Node>
to provide the node to the callback. Add anNode child
argument to the callback function.
- Changed the algorithm for creating new file names for temporary images. Previously this used a date format that caused problems when several images were created in sub-second intervals, breaking custom map marker icons, for instance.
- Fixed a memory leak that occured when resizing multiple images one after another.
A new vector drawing system has been added to Fuse. This allows drawing of curves, shapes, and simple vector images.
- Added
Curve
which allows drawing of lines and polygons.CurvePoint
can be used to bind to JavaScript observables and servers as the basis for drawing line graphs - Reintroduced
Path
,Ellipse
,Star
andRegularPolygon
. These are all backed by the new vector system. - Added several options to
Ellipse
to allow drawing wedges, like withCircle
- Added
Arc
for drawing the outside edge of anEllipse
- Added elliptic arc support to
Path
to support more SVG path data - Removed
FitMode.StrokeMaximum
andFitMode.ShrinkToStroke
as they could not be reliably supported or behave in a reasonable fashion. To fit accounting for stroke use a wrapping panel with padding instead. - Removed
Path.ScaleMode
as stroke scaling is not supported as it was before - Remove the
Fuse.Drawing.Polygons
andFuse.Drawing.Paths
packages. Their functionality has been replaced by the new vector system Fuse.Controls.FillRule
has moved toFuse.Drawing.FillRule
- Added the following default-fonts, that can be used like so
<Text Font="Bold" FontSize="30">This is some bold text</Text>
:Thin
Light
Regular
Medium
Bold
ThinItalic
LightItalic
Italic
MediumItalic
BoldItalic
- Due to a bug in Mono we have temporarily removed support for PlaySound in preview on OSX.
- Fixed a bug causing crashes on iPhone 5s devices when using
ShowMyLocation="true"
- Fixed a bug where the
MemoryPolicy
given would not be correctly used.
See the commit history for this file for older entries.