Skip to content

Commit

Permalink
LaunchBox: finish saving settings before closing the window (#6347)
Browse files Browse the repository at this point in the history
  • Loading branch information
stpere committed Dec 12, 2012
1 parent d725054 commit 4d6bb87
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 16 deletions.
10 changes: 6 additions & 4 deletions src/apps/launchbox/App.cpp
Expand Up @@ -145,11 +145,13 @@ App::_StoreSettingsIfNeeded()
BMessage settings('sett');
for (int32 i = 0; BWindow* window = WindowAt(i); i++) {
if (MainWindow* padWindow = dynamic_cast<MainWindow*>(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);
}
}
}
Expand Down
28 changes: 16 additions & 12 deletions src/apps/launchbox/MainWindow.cpp
Expand Up @@ -90,19 +90,23 @@ MainWindow::QuitRequested()
if (dynamic_cast<MainWindow*>(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;
}


Expand Down

0 comments on commit 4d6bb87

Please sign in to comment.