fix(ui): console-commands modal slide + wallets footer clipping
Two follow-ups to the modal float work: - Console RPC command reference (renderCommandsPopup) had the SAME auto-height feedback bug as Wallets: BlurFloat with no cardHeight, and its fill-height command list read GetContentRegionAvail() inside the AutoResizeY child -> self-referential, sliding content off-screen after a monitor move. Give it a FIXED viewport-relative cardHeight (fills ~84% of the viewport). Also removed its duplicate body H6 heading (the framework h6 title already shows it) — missed earlier because it's spec-form, not the positional overload. - Wallets footer clipping: after the fixed-height conversion the content child clips overflow (NoScrollbar), and the hardcoded 130*dp reserve below the table was too small for the create/add-folder rows + separator + footer (~160*dp), so the buttons clipped — worse at 150%. Compute the reserve from real widget metrics (GetFrameHeightWithSpacing + caption height) so it holds at any DPI. Added a modal-console-commands sweep surface (debug-gated ConsoleTab setter) so the popup is captured. Verified both at 100% and font_scale 1.5 (150%): footers on-screen, single headings, lists fill, nothing clipped. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1391,13 +1391,15 @@ void ConsoleTab::renderCommandsPopup()
|
||||
ov.title = TR("console_rpc_reference"); ov.p_open = &show_commands_popup_;
|
||||
ov.style = material::OverlayStyle::BlurFloat; // floating content on the blur, plain heading
|
||||
ov.cardWidth = popW; ov.cardBottomViewportRatio = 0.94f; // keep authored width
|
||||
// FIXED height (fills most of the viewport) instead of auto-height: the command list's
|
||||
// fill-height child reads GetContentRegionAvail() inside the dialog child, which is only stable
|
||||
// when the child is fixed-height. Auto-height made it self-referential and it slid content
|
||||
// off-screen after a monitor move (same class of bug as the Wallets modal).
|
||||
ov.cardHeight = ImGui::GetMainViewport()->Size.y * 0.84f / Layout::dpiScale();
|
||||
if (!material::BeginOverlayDialog(ov)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Type().text(TypeStyle::H6, TR("console_rpc_reference"));
|
||||
ImGui::Dummy(ImVec2(0, Layout::spacingSm()));
|
||||
|
||||
// Search filter
|
||||
static char cmdFilter[128] = {0};
|
||||
ImGui::SetNextItemWidth(-1);
|
||||
|
||||
Reference in New Issue
Block a user