Browse Source

Don't invalidate a disposed TopLevelImpl.

pull/2307/head
Steven Kirk 8 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 double _scaling = 1;
private Size _clientSize; private Size _clientSize;
public IInputRoot InputRoot { get; private set; } public IInputRoot InputRoot { get; private set; }
public bool IsDisposed { get; private set; }
public virtual void Dispose() public virtual void Dispose()
{ {
//No-op IsDisposed = true;
} }
public IRenderer CreateRenderer(IRenderRoot root) => new ImmediateRenderer(root); 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) public override void Invalidate(Rect rect)
{ {
_invalidated = true; if (!IsDisposed)
Dispatcher.UIThread.Post(RenderIfNeeded); {
_invalidated = true;
Dispatcher.UIThread.Post(RenderIfNeeded);
}
} }
public override IMouseDevice MouseDevice { get; } = new MouseDevice(); public override IMouseDevice MouseDevice { get; } = new MouseDevice();

Loading…
Cancel
Save