-1

I’m working with QtWebEngine. I have a very heavy page. When the page is loaded I show another QWindow (a splash window).

I subscribe on loadingChanged signal of the QQuickWebEngineView by which I show the window with webview.

The problem is that QWE loads a content, but does not draws it in the QSG until the window will be shown. How I see, the QWE catch OnSwapCompositorFrame, call QQuickItem::update() and it’s all, nothing else happens. The updatePaintNode is called just after the window is shown.

If I use the QPainter (—disable-delegated-renderer) instead QSG all work well. I did some hacks, but I think there will be side effects.

Hack (in src/webengine/render_widget_host_view_qt_delegate_quick.cpp)

void RenderWidgetHostViewQtDelegateQuick::update(const QRect&)
{
     if (window()->isVisible()) {
        if (hiddenNode) {
            delete hiddenNode;
            hiddenNode = NULL;
        }
        QQuickItem::update();
    } else {
        hiddenNode = updatePaintNode(hiddenNode, NULL);
     }
}

Is it OK? How to force update a hidden window right?

Prasad Silva
  • 1,020
  • 2
  • 11
  • 28

1 Answers1

0

Create some ACTIVE painter and use QWidget::render

Marek R
  • 32,568
  • 6
  • 55
  • 140