Fix drag-out losing audio and FX-container drops losing the capture; re-home ingest under shell/actions
This commit is contained in:
@@ -48,4 +48,11 @@ PathList assemblePathList(const std::vector<ResolvedSample>& resolved) {
|
||||
return out;
|
||||
}
|
||||
|
||||
OsHandoff decideOsHandoff(const std::vector<std::string>& paths) {
|
||||
OsHandoff out;
|
||||
out.startOsDrag = !paths.empty();
|
||||
out.releaseInternalDrag = out.startOsDrag;
|
||||
return out;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -69,4 +69,19 @@ struct PathList {
|
||||
// exact-string — the shell normalizes case/slashes upstream if it wants Windows-style dedup.
|
||||
PathList assemblePathList(const std::vector<ResolvedSample>& resolved);
|
||||
|
||||
// --- OS hand-off ordering -----------------------------------------------------
|
||||
|
||||
// The two side effects the shell performs when a drag crosses out of REAPER. They are ONE
|
||||
// decision, not two: winding the internal drag down (release capture, clear drag state) for a
|
||||
// hand-off that then cannot happen consumes the gesture — the user sees a drag that silently
|
||||
// did nothing and drags again. Never release without starting.
|
||||
struct OsHandoff {
|
||||
bool startOsDrag = false; // hand `paths` to the OS drag initiator
|
||||
bool releaseInternalDrag = false; // first wind down mouse capture + panel drag state
|
||||
};
|
||||
|
||||
// Decides the hand-off from the assembled path list. Empty (everything stale/unresolvable)
|
||||
// means the internal drag stays live rather than dying half-torn-down.
|
||||
OsHandoff decideOsHandoff(const std::vector<std::string>& paths);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
|
||||
Reference in New Issue
Block a user