Browse Source

Merge branch 'master' into fixes/1904-fillresult

pull/1905/head
Steven Kirk 7 years ago
committed by GitHub
parent
commit
01e5e3df45
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      src/Avalonia.Controls/Image.cs
  2. 4
      src/Avalonia.Controls/Primitives/SelectingItemsControl.cs
  3. 2
      src/Avalonia.Visuals/Matrix.cs
  4. 2
      src/Markup/Avalonia.Markup.Xaml/PortableXaml/portable.xaml.github
  5. 13
      src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
  6. 29
      tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs

1
src/Avalonia.Controls/Image.cs

@ -26,6 +26,7 @@ namespace Avalonia.Controls
static Image()
{
AffectsRender<Image>(SourceProperty, StretchProperty);
AffectsMeasure<Image>(SourceProperty, StretchProperty);
}
/// <summary>

4
src/Avalonia.Controls/Primitives/SelectingItemsControl.cs

@ -871,8 +871,8 @@ namespace Avalonia.Controls.Primitives
RaisePropertyChanged(SelectedItemProperty, oldItem, item, BindingPriority.LocalValue);
}
added = e.OldItems;
removed = e.NewItems;
added = e.NewItems;
removed = e.OldItems;
break;
}

2
src/Avalonia.Visuals/Matrix.cs

@ -47,7 +47,7 @@ namespace Avalonia
/// <summary>
/// Returns the multiplicative identity matrix.
/// </summary>
public static Matrix Identity => new Matrix(1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
public static Matrix Identity { get; } = new Matrix(1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
/// <summary>
/// Returns whether the matrix is the identity matrix.

2
src/Markup/Avalonia.Markup.Xaml/PortableXaml/portable.xaml.github

@ -1 +1 @@
Subproject commit 8abbe09592668efb573ac4d5548ba2d7e464ba78
Subproject commit 8e4700d4b24935ed5400e5e0d6fce96b5b4a317a

13
src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs

@ -15,6 +15,8 @@ namespace Avalonia.Direct2D1.Media
/// </summary>
public class WicBitmapImpl : BitmapImpl
{
private BitmapDecoder _decoder;
/// <summary>
/// Initializes a new instance of the <see cref="WicBitmapImpl"/> class.
/// </summary>
@ -33,10 +35,10 @@ namespace Avalonia.Direct2D1.Media
/// <param name="stream">The stream to read the bitmap from.</param>
public WicBitmapImpl(Stream stream)
{
using (BitmapDecoder decoder = new BitmapDecoder(Direct2D1Platform.ImagingFactory, stream, DecodeOptions.CacheOnLoad))
{
WicImpl = new Bitmap(Direct2D1Platform.ImagingFactory, decoder.GetFrame(0), BitmapCreateCacheOption.CacheOnLoad);
}
// https://stackoverflow.com/questions/48982749/decoding-image-from-stream-using-wic/48982889#48982889
_decoder = new BitmapDecoder(Direct2D1Platform.ImagingFactory, stream, DecodeOptions.CacheOnLoad);
WicImpl = new Bitmap(Direct2D1Platform.ImagingFactory, _decoder.GetFrame(0), BitmapCreateCacheOption.CacheOnLoad);
}
/// <summary>
@ -72,7 +74,7 @@ namespace Avalonia.Direct2D1.Media
UnmanagedMethods.CopyMemory(
(l.Data.DataPointer + row * l.Stride),
(data + row * stride),
(UIntPtr) l.Data.Pitch);
(UIntPtr)l.Data.Pitch);
}
}
}
@ -92,6 +94,7 @@ namespace Avalonia.Direct2D1.Media
public override void Dispose()
{
WicImpl.Dispose();
_decoder?.Dispose();
}
/// <summary>

29
tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs

@ -541,6 +541,35 @@ namespace Avalonia.Controls.UnitTests.Primitives
Assert.True(called);
}
[Fact]
public void Replacing_SelectedItems_Should_Raise_SelectionChanged_With_CorrectItems()
{
var items = new[] { "foo", "bar", "baz" };
var target = new TestSelector
{
Items = items,
Template = Template(),
SelectedItem = "bar",
};
var called = false;
target.SelectionChanged += (s, e) =>
{
Assert.Equal(new[] { "foo",}, e.AddedItems.Cast<object>());
Assert.Equal(new[] { "bar" }, e.RemovedItems.Cast<object>());
called = true;
};
target.ApplyTemplate();
target.Presenter.ApplyTemplate();
target.SelectedItems[0] = "foo";
Assert.True(called);
}
private FuncControlTemplate Template()
{
return new FuncControlTemplate<SelectingItemsControl>(control =>

Loading…
Cancel
Save