Browse Source

Don't raise ScrollChanged if nothing changed.

And remove empty braces in test.
pull/4080/head
Steven Kirk 6 years ago
parent
commit
bc891efc13
  1. 19
      src/Avalonia.Controls/ScrollViewer.cs
  2. 4
      tests/Avalonia.Layout.UnitTests/LayoutableTests.cs

19
src/Avalonia.Controls/ScrollViewer.cs

@ -602,16 +602,19 @@ namespace Avalonia.Controls
private void RaiseScrollChanged() private void RaiseScrollChanged()
{ {
var e = new ScrollChangedEventArgs( var extentDelta = new Vector(Extent.Width - _oldExtent.Width, Extent.Height - _oldExtent.Height);
new Vector(Extent.Width - _oldExtent.Width, Extent.Height - _oldExtent.Height), var offsetDelta = Offset - _oldOffset;
Offset - _oldOffset, var viewportDelta = new Vector(Viewport.Width - _oldViewport.Width, Viewport.Height - _oldViewport.Height);
new Vector(Viewport.Width - _oldViewport.Width, Viewport.Height - _oldViewport.Height));
OnScrollChanged(e); if (extentDelta != default || offsetDelta != default || viewportDelta != default)
{
var e = new ScrollChangedEventArgs(extentDelta, offsetDelta, viewportDelta);
OnScrollChanged(e);
_oldExtent = Extent; _oldExtent = Extent;
_oldOffset = Offset; _oldOffset = Offset;
_oldViewport = Viewport; _oldViewport = Viewport;
}
} }
} }
} }

4
tests/Avalonia.Layout.UnitTests/LayoutableTests.cs

@ -213,9 +213,7 @@ namespace Avalonia.Layout.UnitTests
{ {
Child = border1 = new Border Child = border1 = new Border
{ {
Child = border2 = new Border Child = border2 = new Border(),
{
}
}, },
LayoutManager = layoutManager, LayoutManager = layoutManager,
}; };

Loading…
Cancel
Save