fix(ingest): drop-onto-panel is bank-fill only

Remove both ingestAssignActiveInstance() calls from ingestDroppedFiles.
New samples still land in the bank, bump the generation, and persist —
but the drop no longer force-selects on any live instance. Dedup branch
simplified; stale comments corrected. ingestAssignActiveInstance stays
defined for the main.cpp path.
This commit is contained in:
2026-07-27 14:02:38 -04:00
parent 203005e6cf
commit 5f7fbad7fb
2 changed files with 27 additions and 40 deletions
+6 -5
View File
@@ -3199,10 +3199,11 @@ void handleRightClick(int x, int y) {
// --- Dialog proc + docking ----------------------------------------------------
// Decodes a WM_DROPFILES HDROP into the dropped file paths (absolute, OS-native) and hands
// them to the S8 ingest path. Multi-file drop: ingestDroppedFiles imports all and assigns
// the first. Always DragFinish's the HDROP (frees the shell-allocated drop buffer) on every
// path. DragQueryFile(hDrop, 0xFFFFFFFF, ...) returns the file count; then each path is
// queried by index. Both Win32 and SWELL expose DragQueryFile/DragFinish with this contract.
// them to the S8 ingest path. Multi-file drop: ingestDroppedFiles imports all into the active
// bank (bank-fill only — no assignment to any live instance). Always DragFinish's the HDROP
// (frees the shell-allocated drop buffer) on every path. DragQueryFile(hDrop, 0xFFFFFFFF, ...)
// returns the file count; then each path is queried by index. Both Win32 and SWELL expose
// DragQueryFile/DragFinish with this contract.
void handleDropFiles(HDROP hDrop) {
std::vector<std::string> paths;
const UINT count = DragQueryFile(hDrop, 0xFFFFFFFF, nullptr, 0);
@@ -3224,7 +3225,7 @@ WDL_DLGRET dlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
switch (msg) {
case WM_DROPFILES:
// S8 drop-onto-panel ingest: OS file drop on the docked panel HWND -> import
// into the active bank + assign the first. wParam is the HDROP.
// into the active bank (bank-fill only). wParam is the HDROP.
handleDropFiles(reinterpret_cast<HDROP>(wParam));
return 0;
case WM_PAINT: {