-
Notifications
You must be signed in to change notification settings - Fork 840
feat(win32): add support IDataObjectAsyncCapability Drag&Drop operations #22182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(win32): add support IDataObjectAsyncCapability Drag&Drop operations #22182
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds support for IDataObjectAsyncCapability to enable asynchronous drag-and-drop operations on Win32 platforms, specifically for file drop (HDROP) operations. The feature addresses scenarios where file information becomes available asynchronously during drag-and-drop, such as when dragging files from cloud storage providers.
Key Changes:
- Refactored
Win32ClipboardExtension.GetFileDropList()to return a list instead of directly modifying the DataPackage, enabling reuse in async scenarios - Implemented async HDROP handling through a new
AsyncHDropHandlerclass that usesIDataObjectAsyncCapabilityAPIs - Added support for querying and displaying custom clipboard format names for improved logging
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 13 comments.
| File | Description |
|---|---|
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/Win32ClipboardExtension.cs |
Refactored GetFileDropList to return List<IStorageItem>? instead of void, enabling reuse for async file drop operations |
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs |
Added async capability support with TryHandleAsyncHDrop method, AsyncHDropHandler class, and lifecycle management for async file drops |
src/Uno.UI.Runtime.Skia.Win32.Support/NativeMethods.txt |
Added IDataObjectAsyncCapability interface and GetClipboardFormatName function to native method declarations |
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Outdated
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Outdated
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Outdated
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Outdated
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Outdated
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Outdated
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Outdated
Show resolved
Hide resolved
42c456c to
43f8530
Compare
|
π€ Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22182/wasm-skia-net9/index.html |
|
π€ Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-22182/docs/index.html |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 9 comments.
...untime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.DropTarget.cs
Show resolved
Hide resolved
...untime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.DropTarget.cs
Outdated
Show resolved
Hide resolved
...untime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.DropTarget.cs
Show resolved
Hide resolved
...untime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.DropTarget.cs
Outdated
Show resolved
Hide resolved
...untime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.DropTarget.cs
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Show resolved
Hide resolved
...untime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.DropTarget.cs
Outdated
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Show resolved
Hide resolved
|
π€ Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22182/wasm-skia-net9/index.html |
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Show resolved
Hide resolved
src/Uno.UI.Runtime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.cs
Show resolved
Hide resolved
...untime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.DropTarget.cs
Show resolved
Hide resolved
...untime.Skia.Win32/ApplicationMode/DataTransfer/DragDrop/Win32DragDropExtension.DropTarget.cs
Show resolved
Hide resolved
|
π€ Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-22182/docs/index.html |
|
π€ Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22182/wasm-skia-net9/index.html |
|
π€ Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-22182/docs/index.html |
|
|
GitHub Issue: closes https://github.com/unoplatform/kahua-private/issues/390
PR Type:
What is the current behavior? π€
What is the new behavior? π
PR Checklist β
Please check if your PR fulfills the following requirements:
Screenshots Compare Test Runresults.Other information βΉοΈ