diff options
Diffstat (limited to 'Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp')
-rwxr-xr-x | Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp b/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp index 46120a7b0..0d28cbcc1 100755 --- a/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp +++ b/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp @@ -471,6 +471,8 @@ DumpRenderTree::DumpRenderTree() DumpRenderTreeSupportQt::setDumpRenderTreeModeEnabled(true); DumpRenderTreeSupportQt::setInteractiveFormValidationEnabled(webPage(), true); + DumpRenderTreeSupportQt::enableMockScrollbars(); + QFocusEvent event(QEvent::FocusIn, Qt::ActiveWindowFocusReason); QApplication::sendEvent(m_mainView, &event); } @@ -947,6 +949,23 @@ void DumpRenderTree::dump() } else image = DumpRenderTreeSupportQt::paintPagesWithBoundaries(mainFrame); + if (DumpRenderTreeSupportQt::trackRepaintRects(m_page->mainFrame())) { + QVector<QRect> repaintRects; + DumpRenderTreeSupportQt::getTrackedRepaintRects(m_page->mainFrame(), repaintRects); + QImage mask(image.size(), image.format()); + mask.fill(QColor(0, 0, 0, 0.66 * 255)); + + QPainter maskPainter(&mask); + maskPainter.setCompositionMode(QPainter::CompositionMode_Source); + for (int i = 0; i < repaintRects.size(); ++i) + maskPainter.fillRect(repaintRects[i], Qt::transparent); + + QPainter painter(&image); + painter.drawImage(image.rect(), mask); + + DumpRenderTreeSupportQt::setTrackRepaintRects(m_page->mainFrame(), false); + } + QCryptographicHash hash(QCryptographicHash::Md5); for (int row = 0; row < image.height(); ++row) hash.addData(reinterpret_cast<const char*>(image.scanLine(row)), image.width() * 4); |