diff --git a/src/Web/Avalonia.Web.Blazor/BlazorSkiaGpuRenderTarget.cs b/src/Web/Avalonia.Web.Blazor/BlazorSkiaGpuRenderTarget.cs index ee7374634f..5df844b11d 100644 --- a/src/Web/Avalonia.Web.Blazor/BlazorSkiaGpuRenderTarget.cs +++ b/src/Web/Avalonia.Web.Blazor/BlazorSkiaGpuRenderTarget.cs @@ -38,6 +38,12 @@ namespace Avalonia.Web.Blazor { get { + if( _blazorSkiaSurface.IsDirty ) + { + _blazorSkiaSurface.IsDirty = false; + return true; + } + var result = _size.Width != _renderTarget.Width || _size.Height != _renderTarget.Height; return result; diff --git a/src/Web/Avalonia.Web.Blazor/BlazorSkiaSurface.cs b/src/Web/Avalonia.Web.Blazor/BlazorSkiaSurface.cs index 512309cfe3..3e5bc8934d 100644 --- a/src/Web/Avalonia.Web.Blazor/BlazorSkiaSurface.cs +++ b/src/Web/Avalonia.Web.Blazor/BlazorSkiaSurface.cs @@ -26,5 +26,7 @@ namespace Avalonia.Web.Blazor public double Scaling { get; set; } public SKHtmlCanvasInterop.GLInfo GlInfo { get; set; } + + public bool IsDirty { get; set; } } } diff --git a/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs b/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs index 1d667c0f0c..0158dc4f31 100644 --- a/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs +++ b/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs @@ -51,6 +51,8 @@ namespace Avalonia.Web.Blazor if (_currentSurface is { }) { _currentSurface.Size = new PixelSize((int)size.Width, (int)size.Height); + + _currentSurface.IsDirty = true; } Resized?.Invoke(newSize, PlatformResizeReason.User);