mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-15 19:27:56 +01:00
## Summary of the Pull Request This PR adds basic drag-and-drop support for items in list and grid views. It introduces two new properties on `ListItem`, backed by `IExtendedAttributesProvider`: `DataPackage` and `DataPackageView`. These properties are mutually exclusive. `DataPackage` serves as a convenience property allowing the item to retain the underlying object without risk of losing it. Across the extension boundary, only the immutable `DataPackageView` snapshot is transferred. When `DataPackage` is set, `DataPackageView` is derived from it. This PR includes initial concrete drag-and-drop implementations for: - File Indexer - Clipboard History **Todo / Missing pieces** - [x] Extend `DataPackage` support to top-level command items, enabling scenarios such as index fallback ~ - [x] Provide automatic drag-and-drop for unconfigured list items (e.g., copying title and subtitle as text) - [x] Keep CmdPal open - [ ] ~Clipboard commands (since we have the DataPackage...)~ - [ ] ~Improve logging~ ## Pictures? Moving ones! https://github.com/user-attachments/assets/13eb9a71-e760-43ea-8c2d-cd41cf377905 <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #38289 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed
69 lines
1023 B
Plaintext
69 lines
1023 B
Plaintext
GetPhysicallyInstalledSystemMemory
|
|
GlobalMemoryStatusEx
|
|
GetSystemInfo
|
|
GetForegroundWindow
|
|
SetForegroundWindow
|
|
GetWindowRect
|
|
GetCursorPos
|
|
SetWindowPos
|
|
HWND_TOPMOST
|
|
HWND_BOTTOM
|
|
IsIconic
|
|
RegisterHotKey
|
|
UnregisterHotKey
|
|
SetWindowLongPtr
|
|
CallWindowProc
|
|
ShowWindow
|
|
SetForegroundWindow
|
|
EnableWindow
|
|
IsWindowEnabled
|
|
SetFocus
|
|
SetActiveWindow
|
|
MonitorFromWindow
|
|
GetMonitorInfo
|
|
GetDpiForMonitor
|
|
WM_HOTKEY
|
|
WM_NCLBUTTONDBLCLK
|
|
|
|
Shell_NotifyIcon
|
|
LoadIcon
|
|
WM_USER
|
|
WM_WINDOWPOSCHANGING
|
|
RegisterWindowMessageW
|
|
ExtractIconEx
|
|
TRACK_POPUP_MENU_FLAGS
|
|
WM_COMMAND
|
|
WM_RBUTTONUP
|
|
WM_LBUTTONUP
|
|
WM_LBUTTONDBLCLK
|
|
CreatePopupMenu
|
|
TrackPopupMenuEx
|
|
InsertMenu
|
|
|
|
MessageBox
|
|
DwmGetWindowAttribute
|
|
DwmSetWindowAttribute
|
|
DWM_CLOAKED_APP
|
|
DWM_WINDOW_CORNER_PREFERENCE
|
|
|
|
CoWaitForMultipleObjects
|
|
INFINITE
|
|
CWMO_FLAGS
|
|
|
|
GetCurrentThreadId
|
|
SetWindowsHookEx
|
|
UnhookWindowsHookEx
|
|
CallNextHookEx
|
|
GetModuleHandle
|
|
|
|
GetWindowLong
|
|
SetWindowLong
|
|
WINDOW_EX_STYLE
|
|
CreateWindowEx
|
|
WNDCLASSEXW
|
|
RegisterClassEx
|
|
GetStockObject
|
|
GetModuleHandle
|
|
|
|
GetWindowThreadProcessId
|
|
AttachThreadInput |