diff --git a/src/plugins/platforms/directfb/qdirectfb_egl.cpp b/src/plugins/platforms/directfb/qdirectfb_egl.cpp index 2e00eda..9533565 100644 --- a/src/plugins/platforms/directfb/qdirectfb_egl.cpp +++ b/src/plugins/platforms/directfb/qdirectfb_egl.cpp @@ -174,6 +174,8 @@ QDirectFbWindowEGL::~QDirectFbWindowEGL() void QDirectFbWindowEGL::createDirectFBWindow() { // Use the default for the raster surface. + IDirectFBSurface *surface; + if (window()->surfaceType() == QSurface::RasterSurface) return QDirectFbWindow::createDirectFBWindow(); @@ -199,6 +201,12 @@ void QDirectFbWindowEGL::createDirectFBWindow() DirectFBError("QDirectFbWindow: failed to create window", result); m_dfbWindow->SetOpacity(m_dfbWindow.data(), 0xff); + + m_dfbWindow->GetSurface (m_dfbWindow.data(), &surface); + surface->Clear (surface, 0x0, 0x0, 0x0, 0x0); + surface->Flip (surface, NULL, DSFLIP_NONE); + surface->Clear (surface, 0x0, 0x0, 0x0, 0x0); + m_inputHandler->addWindow(m_dfbWindow.data(), window()); } diff --git a/src/plugins/platforms/directfb/qdirectfbwindow.cpp b/src/plugins/platforms/directfb/qdirectfbwindow.cpp index 8b108ee..ecb27e7 100644 --- a/src/plugins/platforms/directfb/qdirectfbwindow.cpp +++ b/src/plugins/platforms/directfb/qdirectfbwindow.cpp @@ -58,6 +58,7 @@ QDirectFbWindow::QDirectFbWindow(QWindow *tlw, QDirectFbInput *inputhandler) void QDirectFbWindow::createDirectFBWindow() { Q_ASSERT(!m_dfbWindow.data()); + IDirectFBSurface *surface; DFBDisplayLayerConfig layerConfig; IDirectFBDisplayLayer *layer; @@ -87,6 +88,12 @@ void QDirectFbWindow::createDirectFBWindow() DirectFBError("QDirectFbWindow: failed to create window", result); m_dfbWindow->SetOpacity(m_dfbWindow.data(), 0xff); + + m_dfbWindow->GetSurface (m_dfbWindow.data(), &surface); + surface->Clear (surface, 0x0, 0x0, 0x0, 0x0); + surface->Flip (surface, NULL, DSFLIP_NONE); + surface->Clear (surface, 0x0, 0x0, 0x0, 0x0); + m_inputHandler->addWindow(m_dfbWindow.data(), window()); }