From cf0769649ecb448f3f1be418cfdd459f7c14486d Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Sat, 31 Mar 2012 17:29:25 -0400 Subject: [PATCH] Fix crashing corner case in screen prefs. If the refresh limits only allowed a single refresh, the menu item constructed had no BMessage. This caused _UpdateRefreshControls() to crash when attempting to match the current refresh rate to the item. For simplicity, give it a message containing the fixed refresh rate just as in all other cases. Should finally fix #8431. --- src/preferences/screen/ScreenWindow.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/preferences/screen/ScreenWindow.cpp b/src/preferences/screen/ScreenWindow.cpp index c094a0b1ad..be994864b7 100644 --- a/src/preferences/screen/ScreenWindow.cpp +++ b/src/preferences/screen/ScreenWindow.cpp @@ -316,7 +316,9 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings) // frequency, like the VESA driver BString name; refresh_rate_to_string(min, name); - BMenuItem *item = new BMenuItem(name.String(), NULL); + BMessage *message = new BMessage(POP_REFRESH_MSG); + message->AddFloat("refresh", min); + BMenuItem *item = new BMenuItem(name.String(), message); fRefreshMenu->AddItem(item); item->SetEnabled(false); } else {