feat(settings): single full-width Node & Security column (no empty gap)

Two-column layouts left an unbalanced empty gap for this content (Node/RPC vs
Security+Daemon can't be evened into two columns), so drop the split entirely:
Node -> RPC -> Security -> Daemon Binary now stack vertically at full card width.
This guarantees no horizontal gap and gives the RPC grid and the Daemon Binary
button rows the full width they want.

Implemented by forcing the existing vertical-flow path (`stacked`) always on, so
the section bodies are unchanged; removes the now-unused column-split math and the
node-sec-stack-width schema key.

Full-node + lite build clean; source hygiene clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-02 00:20:30 -05:00
parent 5d6e78c719
commit 7826be4b13
2 changed files with 8 additions and 13 deletions

View File

@@ -1325,9 +1325,6 @@ wallet-btn-padding = { size = 24.0 }
rpc-label-min-width = { size = 70.0 } rpc-label-min-width = { size = 70.0 }
rpc-label-width = { size = 85.0 } rpc-label-width = { size = 85.0 }
security-combo-width = { size = 120.0 } security-combo-width = { size = 120.0 }
# Node & Security: below this card-content width the NODE + SECURITY columns stack
# vertically (full width each) instead of sitting side by side.
node-sec-stack-width = { size = 600.0 }
port-input-min-width = { size = 60.0 } port-input-min-width = { size = 60.0 }
port-input-width-ratio = { size = 0.4 } port-input-width-ratio = { size = 0.4 }
idle-combo-width = { size = 64.0 } idle-combo-width = { size = 64.0 }

View File

@@ -1510,18 +1510,16 @@ void RenderSettingsPage(App* app) {
// --- NODE + SECURITY: side by side when wide, stacked when narrow --- // --- NODE + SECURITY: side by side when wide, stacked when narrow ---
{ {
float colGap = Layout::spacingLg(); // Single full-width column: Node -> RPC -> Security -> Daemon Binary stack
// Responsive: below this content width the two columns get too cramped (the RPC // vertically, each at full card width. (Two-column variants left an unbalanced
// grid especially), so stack them into one full-width column instead. // empty gap for this content, and the Daemon Binary button rows want the full
float stackWidth = S.drawElement("components.settings-page", "node-sec-stack-width").sizeOr(600.0f); // width anyway.) `stacked` drives the existing vertical-flow path below.
bool stacked = contentW < stackWidth; bool stacked = true;
// Even 50/50 columns so the Daemon Binary section (masonry-placed into the float leftColW = contentW;
// shorter column below) has enough width, and Node/RPC vs Security balance. float rightColW = contentW;
float leftColW = stacked ? contentW : (contentW - colGap) * 0.5f;
float rightColW = stacked ? contentW : (contentW - colGap) * 0.5f;
ImVec2 sectionOrigin = ImGui::GetCursorScreenPos(); ImVec2 sectionOrigin = ImGui::GetCursorScreenPos();
float leftX = sectionOrigin.x; float leftX = sectionOrigin.x;
float rightX = stacked ? sectionOrigin.x : (sectionOrigin.x + leftColW + colGap); float rightX = sectionOrigin.x;
// ---- LEFT COLUMN: NODE ---- // ---- LEFT COLUMN: NODE ----
ImGui::SetCursorScreenPos(ImVec2(leftX, sectionOrigin.y)); ImGui::SetCursorScreenPos(ImVec2(leftX, sectionOrigin.y));