fix(modals): a fixed-card modal can no longer wheel-scroll as a whole
The overlay content child had NoScrollbar (hides the scrollbar) but not NoScrollWithMouse — so when a fixed-height card's content overflowed by even a few px, the mouse wheel silently drifted the ENTIRE dialog (title + panes + footer). Add NoScrollWithMouse to the content child: a modal is a fixed frame; inner scroll regions (version list, release notes, command list) still scroll on their own, and auto-height cards resize to content so they never overflow. Also fix the daemon updater's footer budget, which under-counted the Spacing/Separator/Spacing + inter-item gaps and produced exactly that few-px overflow. Verified daemon / console / wallets / portfolio render intact. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -226,7 +226,12 @@ private:
|
||||
ImFont* capF = Type().caption();
|
||||
|
||||
const bool showFooter = (p.state == St::ReleaseList);
|
||||
const float footerH = showFooter ? (ImGui::GetFrameHeight() + Layout::spacingSm() * 2.0f + 1.0f) : 0.0f;
|
||||
// Budget the whole footer block — the Spacing + Separator + Spacing + button row and every
|
||||
// inter-item gap — so the two-pane body leaves exact room and nothing overflows the card.
|
||||
const float footerH = showFooter
|
||||
? (ImGui::GetFrameHeightWithSpacing() + ImGui::GetStyle().ItemSpacing.y * 3.0f
|
||||
+ Layout::spacingSm() * 2.0f + 1.0f)
|
||||
: 0.0f;
|
||||
const float bodyH = std::max(120.0f * dp, ImGui::GetContentRegionAvail().y - footerH);
|
||||
const float contentW = ImGui::GetContentRegionAvail().x;
|
||||
const float gap = Layout::spacingLg();
|
||||
|
||||
Reference in New Issue
Block a user