fix: Tier-2 quick mediums — view-only guard, memo counter, updater/close guards
- Send: block Review from a view-only source (no spending key) with a tooltip, instead of failing at submit; label the memo counter as bytes and warn in colour once the field hits its cap (Sapling memos are byte-limited). - Shield: show "No shielded (z) address yet — create one on the Receive tab first" when the destination combo is empty, instead of an empty dropdown. - Updater dialogs (xmrig/daemon): suppress the window X during an active download/verify/extract so closing can't orphan/block on the worker — the in-dialog Cancel is the way to abort. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -62,12 +62,14 @@ public:
|
||||
}
|
||||
using namespace material;
|
||||
const float dp = Layout::dpiScale();
|
||||
const auto p = s_updater->getProgress();
|
||||
// No window X during an active download/verify/extract — closing would orphan/block on the
|
||||
// worker; the in-dialog Cancel is the intended way to abort.
|
||||
const bool active = (p.state == St::Downloading || p.state == St::Verifying || p.state == St::Extracting);
|
||||
OverlayDialogSpec ov;
|
||||
ov.title = TR("daemon_update_title"); ov.p_open = &s_open;
|
||||
ov.title = TR("daemon_update_title"); ov.p_open = active ? nullptr : &s_open;
|
||||
ov.style = OverlayStyle::BlurFloat; ov.cardWidth = 480.0f; ov.cardBottomViewportRatio = 0.94f;
|
||||
if (BeginOverlayDialog(ov)) {
|
||||
const auto p = s_updater->getProgress();
|
||||
using St = util::DaemonUpdater::State;
|
||||
switch (p.state) {
|
||||
case St::Checking: renderChecking(dp, p); break;
|
||||
case St::UpToDate:
|
||||
|
||||
Reference in New Issue
Block a user