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?