diff --git a/src/add-ons/screen_savers/message/Message.cpp b/src/add-ons/screen_savers/message/Message.cpp index 8a769851a5..9e51a717cd 100644 --- a/src/add-ons/screen_savers/message/Message.cpp +++ b/src/add-ons/screen_savers/message/Message.cpp @@ -169,9 +169,18 @@ Message::StartSaver(BView *view, bool preview) void Message::Draw(BView *view, int32 frame) { + if (view == NULL || view->Window() == NULL || !view->Window()->IsLocked()) + return; + + BScreen screen(view->Window()); + if (!screen.IsValid()) + return; + // Double-buffered drawing - BScreen screen; BBitmap buffer(view->Bounds(), screen.ColorSpace(), true); + if (buffer.InitCheck() != B_OK) + return; + BView offscreen(view->Bounds(), NULL, 0, 0); buffer.AddChild(&offscreen); buffer.Lock();