From: Daniel Luberda Date: Fri, 19 Jul 2019 10:43:39 +0000 (+0200) Subject: MacOS: Allow third party libs to display animated images correctly (#6302) X-Git-Tag: accepted/tizen/5.5/unified/20200421.150457~232^2~51 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3d330ac63ec6a185695ffcc49c965911e4cb6bac;p=platform%2Fcore%2Fcsapi%2Fxsf.git MacOS: Allow third party libs to display animated images correctly (#6302) * Mac Animated NSImage support --- diff --git a/Xamarin.Forms.Platform.MacOS/Renderers/ImageRenderer.cs b/Xamarin.Forms.Platform.MacOS/Renderers/ImageRenderer.cs index 8b22895..ded656f 100644 --- a/Xamarin.Forms.Platform.MacOS/Renderers/ImageRenderer.cs +++ b/Xamarin.Forms.Platform.MacOS/Renderers/ImageRenderer.cs @@ -83,7 +83,11 @@ namespace Xamarin.Forms.Platform.MacOS await ImageElementManager.SetImage(this, Element, oldElement).ConfigureAwait(false); } - void IImageVisualElementRenderer.SetImage(NSImage image) => Control.Image = image; + void IImageVisualElementRenderer.SetImage(NSImage image) + { + Control.Image = image; + Control.Animates = image != null && image.Representations().Length > 1; + } bool IImageVisualElementRenderer.IsDisposed => _isDisposed; diff --git a/Xamarin.Forms.Platform.iOS/Renderers/ImageElementManager.cs b/Xamarin.Forms.Platform.iOS/Renderers/ImageElementManager.cs index 2b6303d..ec17dbd 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/ImageElementManager.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/ImageElementManager.cs @@ -115,14 +115,18 @@ namespace Xamarin.Forms.Platform.MacOS var imageController = imageElement as IImageController; var source = imageElement.Source; - #if __MOBILE__ if (Control.Image?.Images != null && Control.Image.Images.Length > 1) { renderer.SetImage(null); - } else + } +#else + if (Control.Image != null && Control.Image.Representations().Length > 1) + { + renderer.SetImage(null); + } #endif - if (oldElement != null) + else if (oldElement != null) { var oldSource = oldElement.Source; if (Equals(oldSource, source))