From a722139bd9f7179237716ac70b1ff0d35519efc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sat, 13 Jun 2026 15:13:29 +0200 Subject: [PATCH] Don't CancelAll downloads on StoreScreen close --- UI/DevScreens.cpp | 24 +++++++++++++----------- UI/DevScreens.h | 1 - UI/Store.cpp | 7 ++++++- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/UI/DevScreens.cpp b/UI/DevScreens.cpp index 44a0cae30e..78ec366383 100644 --- a/UI/DevScreens.cpp +++ b/UI/DevScreens.cpp @@ -557,7 +557,12 @@ bool ShaderViewScreen::key(const KeyInput &ki) { const std::string framedumpsBaseUrl = "http://framedump.ppsspp.org/repro/"; FrameDumpTestScreen::~FrameDumpTestScreen() { - g_DownloadManager.CancelAll(); + if (listing_) { + listing_->Cancel(); + } + if (dumpDownload_) { + dumpDownload_->Cancel(); + } } void FrameDumpTestScreen::CreateTabs() { @@ -573,22 +578,19 @@ void FrameDumpTestScreen::CreateTabs() { std::string url = framedumpsBaseUrl + file; Choice *c = parent->Add(new Choice(file)); c->SetTag(url); - c->OnClick.Handle(this, &FrameDumpTestScreen::OnLoadDump); + c->OnClick.Add([this, url = Path(url)](UI::EventParams &e) { + INFO_LOG(Log::Common, "Trying to launch '%s'", url.c_str()); + // Our disc streaming functionality detects the URL and takes over and handles loading framedumps well, + // except for some reason the game ID. + // TODO: Fix that since it can be important for compat settings. + screenManager()->switchScreen(new EmuScreen(url)); + }); } }); EnsureTabs(); } -void FrameDumpTestScreen::OnLoadDump(UI::EventParams ¶ms) { - Path url = Path(params.v->Tag()); - INFO_LOG(Log::Common, "Trying to launch '%s'", url.c_str()); - // Our disc streaming functionality detects the URL and takes over and handles loading framedumps well, - // except for some reason the game ID. - // TODO: Fix that since it can be important for compat settings. - screenManager()->switchScreen(new EmuScreen(url)); -} - void FrameDumpTestScreen::update() { UIScreen::update(); diff --git a/UI/DevScreens.h b/UI/DevScreens.h index f7d72f8f5c..ebe12887d3 100644 --- a/UI/DevScreens.h +++ b/UI/DevScreens.h @@ -154,7 +154,6 @@ public: const char *tag() const override { return "FrameDumpTest"; } private: - void OnLoadDump(UI::EventParams &e); bool ShowSearchControls() const override { return false; } std::vector files_; diff --git a/UI/Store.cpp b/UI/Store.cpp index bd99267fe9..7185ef345c 100644 --- a/UI/Store.cpp +++ b/UI/Store.cpp @@ -426,7 +426,12 @@ StoreScreen::StoreScreen() : UISimpleBaseDialogScreen(Path(), SimpleDialogFlags: } StoreScreen::~StoreScreen() { - g_DownloadManager.CancelAll(); + if (listing_) { + listing_->Cancel(); + } + if (image_) { + image_->Cancel(); + } } // Handle async download tasks