From 092c62f0f114993910a6ba267b9670e0c56263e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 12 Mar 2008 18:01:32 +0000 Subject: [PATCH] * Creating a Desktop can fail, in which case the app_server should not return B_OK, and an invalid desktop message port... * Desktop::Init() now checks if VirtualScreen::fHWInterface is valid, and exits if not. This can happen if you don't have a graphics driver, and turn on on-screen debug mode in the boot loader (such that you already see the messages from the boot loader). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24371 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/AppServer.cpp | 8 ++++++-- src/servers/app/Desktop.cpp | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/servers/app/AppServer.cpp b/src/servers/app/AppServer.cpp index 9e8970506e..84309aff0f 100644 --- a/src/servers/app/AppServer.cpp +++ b/src/servers/app/AppServer.cpp @@ -188,8 +188,12 @@ AppServer::_DispatchMessage(int32 code, BPrivate::LinkReceiver& msg) } BPrivate::LinkSender reply(replyPort); - reply.StartMessage(B_OK); - reply.Attach(desktop->MessagePort()); + if (desktop != NULL) { + reply.StartMessage(B_OK); + reply.Attach(desktop->MessagePort()); + } else + reply.StartMessage(B_ERROR); + reply.Flush(); break; } diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 08d0998845..3b9460713c 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -385,6 +385,11 @@ Desktop::Init() // TODO: temporary workaround, fActiveScreen will be removed fActiveScreen = fVirtualScreen.ScreenAt(0); + if (fVirtualScreen.HWInterface() == NULL) { + debug_printf("Could not initialize graphics output. Exiting.\n"); + return B_ERROR; + } + fVirtualScreen.HWInterface()->MoveCursorTo(fVirtualScreen.Frame().Width() / 2, fVirtualScreen.Frame().Height() / 2);