From 2057d3c0aa0840ddbed28e95bc747cd5c99791e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 1 Dec 2005 17:08:16 +0000 Subject: [PATCH] If AddToSubset() fails, we now show an error alert. B_QUIT_REQUESTED is no longer forwarded to the application too early. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15271 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../servers/app/look_and_feel/LookAndFeel.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/tests/servers/app/look_and_feel/LookAndFeel.cpp b/src/tests/servers/app/look_and_feel/LookAndFeel.cpp index 0352b193d1..157f651a45 100644 --- a/src/tests/servers/app/look_and_feel/LookAndFeel.cpp +++ b/src/tests/servers/app/look_and_feel/LookAndFeel.cpp @@ -7,6 +7,7 @@ */ +#include #include #include #include @@ -16,6 +17,7 @@ #include #include +#include const uint32 kMsgUpdateLook = 'uplk'; @@ -218,8 +220,18 @@ Window::MessageReceived(BMessage* message) BWindow* window = new Window(Frame().OffsetByCopy(20, 20), (window_look)look, (window_feel)feel); - if (message->what == kMsgAddSubsetWindow) - window->AddToSubset(this); + if (message->what == kMsgAddSubsetWindow) { + status_t status = window->AddToSubset(this); + if (status != B_OK) { + char text[512]; + snprintf(text, sizeof(text), + "Window could not be added to subset:\n\n\%s", strerror(status)); + (new BAlert("Alert", text, "Ok"))->Go(NULL); + + delete window; + break; + } + } window->Show(); break; @@ -237,7 +249,7 @@ Window::QuitRequested() if (!IsModal() && !IsFloating()) gNormalWindowCount--; - if (gNormalWindowCount < 2) + if (gNormalWindowCount < 1) be_app->PostMessage(B_QUIT_REQUESTED); return true;