diff options
Diffstat (limited to 'WebKitTools/QtTestBrowser/webview.cpp')
-rw-r--r-- | WebKitTools/QtTestBrowser/webview.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/WebKitTools/QtTestBrowser/webview.cpp b/WebKitTools/QtTestBrowser/webview.cpp index 242daf6..fffaf9c 100644 --- a/WebKitTools/QtTestBrowser/webview.cpp +++ b/WebKitTools/QtTestBrowser/webview.cpp @@ -59,9 +59,26 @@ WebViewGraphicsBased::WebViewGraphicsBased(QWidget* parent) void WebViewGraphicsBased::setPage(QWebPage* page) { connect(page->mainFrame(), SIGNAL(contentsSizeChanged(const QSize&)), SLOT(contentsSizeChanged(const QSize&))); + connect(page, SIGNAL(scrollRequested(int, int, const QRect&)), SLOT(scrollRequested(int, int))); graphicsWebView()->setPage(page); } +void WebViewGraphicsBased::scrollRequested(int x, int y) +{ + if (!m_resizesToContents) + return; + + // Turn off interactive mode while scrolling, or QGraphicsView will replay the + // last mouse event which may cause WebKit to initiate a drag operation. + bool interactive = isInteractive(); + setInteractive(false); + + verticalScrollBar()->setValue(-y); + horizontalScrollBar()->setValue(-x); + + setInteractive(interactive); +} + void WebViewGraphicsBased::contentsSizeChanged(const QSize& size) { if (m_resizesToContents) |