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);