diff --git a/src/apps/launchbox/App.cpp b/src/apps/launchbox/App.cpp index c13756b2d29..fcf5447852a 100644 --- a/src/apps/launchbox/App.cpp +++ b/src/apps/launchbox/App.cpp @@ -145,11 +145,13 @@ App::_StoreSettingsIfNeeded() BMessage settings('sett'); for (int32 i = 0; BWindow* window = WindowAt(i); i++) { if (MainWindow* padWindow = dynamic_cast(window)) { - BMessage* windowSettings = padWindow->Settings(); - if (windowSettings && padWindow->Lock()) { - padWindow->SaveSettings(windowSettings); + if (padWindow->Lock()) { + BMessage* windowSettings = padWindow->Settings(); + if (windowSettings) { + padWindow->SaveSettings(windowSettings); + settings.AddMessage("window", windowSettings); + } padWindow->Unlock(); - settings.AddMessage("window", windowSettings); } } } diff --git a/src/apps/launchbox/MainWindow.cpp b/src/apps/launchbox/MainWindow.cpp index 3d3edd8af80..690fd907179 100644 --- a/src/apps/launchbox/MainWindow.cpp +++ b/src/apps/launchbox/MainWindow.cpp @@ -90,19 +90,23 @@ MainWindow::QuitRequested() if (dynamic_cast(window)) padWindowCount++; } - if (padWindowCount == 1) { - be_app->PostMessage(B_QUIT_REQUESTED); - return false; - } else { - BAlert* alert = new BAlert(B_TRANSLATE("last chance"), - B_TRANSLATE("Really close this pad?\n" - "(The pad will not be remembered.)"), - B_TRANSLATE("Close"), B_TRANSLATE("Cancel"), NULL); - alert->SetShortcut(1, B_ESCAPE); - if (alert->Go() == 1) - return false; + bool canClose = true; + if (Lock()) { + if (padWindowCount == 1) { + be_app->PostMessage(B_QUIT_REQUESTED); + canClose = false; + } else { + BAlert* alert = new BAlert(B_TRANSLATE("last chance"), + B_TRANSLATE("Really close this pad?\n" + "(The pad will not be remembered.)"), + B_TRANSLATE("Close"), B_TRANSLATE("Cancel"), NULL); + alert->SetShortcut(1, B_ESCAPE); + if (alert->Go() == 1) + canClose = false; + } + Unlock(); } - return true; + return canClose; }