Browse Source

EffectiveViewportChangedListeners thread safety improved

pull/8455/head
Lubomir Tetak 4 years ago
parent
commit
230166d0bc
  1. 8
      src/Avalonia.Base/Layout/LayoutManager.cs

8
src/Avalonia.Base/Layout/LayoutManager.cs

@ -340,7 +340,7 @@ namespace Avalonia.Layout
{
for (var i = 0; i < count; ++i)
{
var l = _effectiveViewportChangedListeners[i];
var l = listeners[i];
if (!l.Listener.IsAttachedToVisualTree)
{
@ -352,7 +352,7 @@ namespace Avalonia.Layout
if (viewport != l.Viewport)
{
l.Listener.EffectiveViewportChanged(new EffectiveViewportChangedEventArgs(viewport));
_effectiveViewportChangedListeners[i] = new EffectiveViewportChangedListener(l.Listener, viewport);
l.Viewport = viewport;
}
}
}
@ -404,7 +404,7 @@ namespace Avalonia.Layout
}
}
private readonly struct EffectiveViewportChangedListener
private struct EffectiveViewportChangedListener
{
public EffectiveViewportChangedListener(ILayoutable listener, Rect viewport)
{
@ -413,7 +413,7 @@ namespace Avalonia.Layout
}
public ILayoutable Listener { get; }
public Rect Viewport { get; }
public Rect Viewport { get; set; }
}
}
}

Loading…
Cancel
Save