Browse Source

Merge pull request #11506 from AvaloniaUI/fix-browser-getitemsasync

Fix browser GetItemsAsync + ICustomDrawOperation
pull/11532/head
Benedikt Stebner 3 years ago
committed by GitHub
parent
commit
d8a2496860
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      src/Avalonia.Base/Rendering/Composition/Drawing/RenderDataDrawingContext.cs
  2. 3
      src/Browser/Avalonia.Browser/Interop/StorageHelper.cs
  3. 5
      src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs

5
src/Avalonia.Base/Rendering/Composition/Drawing/RenderDataDrawingContext.cs

@ -177,7 +177,10 @@ internal class RenderDataDrawingContext : DrawingContext
}); });
} }
public override void Custom(ICustomDrawOperation custom) => Add(new RenderDataCustomNode()); public override void Custom(ICustomDrawOperation custom) => Add(new RenderDataCustomNode
{
Operation = custom
});
public override void DrawGlyphRun(IBrush? foreground, GlyphRun? glyphRun) public override void DrawGlyphRun(IBrush? foreground, GlyphRun? glyphRun)
{ {

3
src/Browser/Avalonia.Browser/Interop/StorageHelper.cs

@ -39,6 +39,9 @@ internal static partial class StorageHelper
[JSImport("StorageItem.openRead", AvaloniaModule.StorageModuleName)] [JSImport("StorageItem.openRead", AvaloniaModule.StorageModuleName)]
public static partial Task<JSObject> OpenRead(JSObject item); public static partial Task<JSObject> OpenRead(JSObject item);
[JSImport("StorageItem.createFromHandle", AvaloniaModule.StorageModuleName)]
public static partial JSObject? StorageItemFromHandle(JSObject handle);
[JSImport("StorageItem.getItemsIterator", AvaloniaModule.StorageModuleName)] [JSImport("StorageItem.getItemsIterator", AvaloniaModule.StorageModuleName)]
[return: JSMarshalAs<JSType.Object>] [return: JSMarshalAs<JSType.Object>]

5
src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs

@ -319,13 +319,14 @@ internal class JSStorageFolder : JSStorageItem, IStorageBookmarkFolder
} }
var kind = storageItem.GetPropertyAsString("kind"); var kind = storageItem.GetPropertyAsString("kind");
var item = StorageHelper.StorageItemFromHandle(storageItem)!;
switch (kind) switch (kind)
{ {
case "directory": case "directory":
yield return new JSStorageFolder(storageItem); yield return new JSStorageFolder(item);
break; break;
case "file": case "file":
yield return new JSStorageFile(storageItem); yield return new JSStorageFile(item);
break; break;
} }
} }

Loading…
Cancel
Save