From 5041c8ae6ed2f6a3681df3d4e33c01ce4817e043 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Tue, 10 Sep 2013 18:08:23 -0400 Subject: [PATCH] ScreenSaver: Set min window height by font height ...rather than font spacing which only scales linearly in the horizontal direction. This sets the min window height nicely at 11pt font while continuing to work at 12pt, 8pt, and 18pt. --- src/preferences/screensaver/ScreenSaverWindow.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/preferences/screensaver/ScreenSaverWindow.cpp b/src/preferences/screensaver/ScreenSaverWindow.cpp index 5bd6b2ea9e..4d4303cc1a 100644 --- a/src/preferences/screensaver/ScreenSaverWindow.cpp +++ b/src/preferences/screensaver/ScreenSaverWindow.cpp @@ -846,10 +846,14 @@ ScreenSaverWindow::ScreenSaverWindow() { fSettings.Load(); - float spacing = be_control_look->DefaultItemSpacing(); + fMinWidth = ceilf(std::max(446.0f, + be_control_look->DefaultItemSpacing() * 44.6f)); - fMinWidth = ceilf(std::max(446.0f, spacing * 44.6f)); - fMinHeight = ceilf(std::max(325.0f, spacing * 32.5f)); + font_height fontHeight; + be_plain_font->GetHeight(&fontHeight); + float textHeight = ceilf(fontHeight.ascent + fontHeight.descent); + + fMinHeight = ceilf(std::max(325.0f, textHeight * 28)); // Create the password editing window fPasswordWindow = new PasswordWindow(fSettings);