diff --git a/src/driver/simple_display.cpp b/src/driver/simple_display.cpp index 5f87a59a1..144abd363 100644 --- a/src/driver/simple_display.cpp +++ b/src/driver/simple_display.cpp @@ -117,8 +117,12 @@ void* CLCD::TimeThread(void *) CLCD::getInstance()->showTime(); /* hack, just if we missed the blit() somewhere * this will update the framebuffer once per second */ - if (getenv("SPARK_NOBLIT") == NULL) - CFrameBuffer::getInstance()->blit(); + if (getenv("SPARK_NOBLIT") == NULL) { + CFrameBuffer *fb = CFrameBuffer::getInstance(); + /* plugin start locks the framebuffer... */ + if (!fb->Locked()) + fb->blit(); + } } return NULL; } diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index a7b890c6f..2accc1bd2 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -588,10 +588,13 @@ void CPlugins::startPlugin(int number,int /*param*/) #else g_RCInput->clearRCMsg(); g_RCInput->stopInput(); + /* stop automatic updates etc. */ + frameBuffer->Lock(); //frameBuffer->setMode(720, 576, 8 * sizeof(fb_pixel_t)); printf("Starting %s\n", plugin_list[number].pluginfile.c_str()); mysystem((char *) plugin_list[number].pluginfile.c_str(), NULL, NULL); //frameBuffer->setMode(720, 576, 8 * sizeof(fb_pixel_t)); + frameBuffer->Unlock(); frameBuffer->paintBackground(); g_RCInput->restartInput(); g_RCInput->clearRCMsg();