From 70a2b1b51b77e9d0a59f11f80cad970fef123493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sat, 1 Aug 2009 01:46:53 +0000 Subject: [PATCH] * Made the refresh slider/menu take the monitor's capabilities into account. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32048 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/preferences/screen/ScreenWindow.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/preferences/screen/ScreenWindow.cpp b/src/preferences/screen/ScreenWindow.cpp index f2a4fc783f..bc7fb87df3 100644 --- a/src/preferences/screen/ScreenWindow.cpp +++ b/src/preferences/screen/ScreenWindow.cpp @@ -310,7 +310,16 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings) fRefreshMenu->AddItem(item = new BMenuItem(name.String(), message)); item->SetEnabled(false); } else { + monitor_info info; + if (fScreenMode.GetMonitorInfo(info) == B_OK) { + min = max_c(info.min_vertical_frequency, min); + max = min_c(info.max_vertical_frequency, max); + } + for (int32 i = 0; i < kRefreshRateCount; ++i) { + if (kRefreshRates[i] < min || kRefreshRates[i] > max) + continue; + BString name; name << kRefreshRates[i] << " Hz"; @@ -880,8 +889,15 @@ ScreenWindow::MessageReceived(BMessage* message) if (max > gMaxRefresh) max = gMaxRefresh; + monitor_info info; + if (fScreenMode.GetMonitorInfo(info) == B_OK) { + min = max_c(info.min_vertical_frequency, min); + max = min_c(info.max_vertical_frequency, max); + } + RefreshWindow *fRefreshWindow = new RefreshWindow( - fRefreshField->ConvertToScreen(B_ORIGIN), fSelected.refresh, min, max); + fRefreshField->ConvertToScreen(B_ORIGIN), fSelected.refresh, + min, max); fRefreshWindow->Show(); break; }