Browse Source

Don't invalidate a disposed TopLevelImpl.

pull/2307/head
Steven Kirk 7 years ago
parent
commit
81510372b4
  1. 4
      src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs
  2. 7
      src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs

4
src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs

@ -11,11 +11,13 @@ namespace Avalonia.Controls.Embedding.Offscreen
{
private double _scaling = 1;
private Size _clientSize;
public IInputRoot InputRoot { get; private set; }
public bool IsDisposed { get; private set; }
public virtual void Dispose()
{
//No-op
IsDisposed = true;
}
public IRenderer CreateRenderer(IRenderRoot root) => new ImmediateRenderer(root);

7
src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs

@ -331,8 +331,11 @@ namespace Avalonia.Controls.Remote.Server
public override void Invalidate(Rect rect)
{
_invalidated = true;
Dispatcher.UIThread.Post(RenderIfNeeded);
if (!IsDisposed)
{
_invalidated = true;
Dispatcher.UIThread.Post(RenderIfNeeded);
}
}
public override IMouseDevice MouseDevice { get; } = new MouseDevice();

Loading…
Cancel
Save