From f0c681b0b501f6606a8cfb25ed1cdc85fba5a970 Mon Sep 17 00:00:00 2001 From: DanS Date: Tue, 21 Jul 2026 20:50:19 -0500 Subject: [PATCH] fix(settings): lower page-masonry threshold so it engages under display scaling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 1000-logical-px threshold never engaged at 125% OS scaling: the panel's real-px width (~1190) was below 1000×dpiScale (~1250), so the page stayed single-column even though the internal NODE & SECURITY two-column (760×dpiScale) did engage. Drop to 780 logical px — still requires usable (~390 logical) columns but engages at the widths real windows actually have under display scaling. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/ui/pages/settings_page.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ui/pages/settings_page.cpp b/src/ui/pages/settings_page.cpp index 1e4b043..dbd6507 100644 --- a/src/ui/pages/settings_page.cpp +++ b/src/ui/pages/settings_page.cpp @@ -654,7 +654,10 @@ void RenderSettingsPage(App* app) { // ==================================================================== const float msFullWidth = availWidth; const float msColGap = Layout::spacingXl(); - const bool msTwoCol = availWidth > 1000.0f * Layout::dpiScale(); + // Threshold is in logical px (× dpiScale): two columns once each is usable + // (~390 logical wide). Kept low enough to engage under OS display scaling, + // where the panel's real-px width is smaller in logical terms. + const bool msTwoCol = availWidth > 780.0f * Layout::dpiScale(); const float msColW = msTwoCol ? (msFullWidth - msColGap) * 0.5f : msFullWidth; const ImVec2 msColTop = ImGui::GetCursorPos(); float msLeftBottomY = 0.0f;