summaryrefslogtreecommitdiffstats
path: root/WebKitTools/QtTestBrowser/webview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKitTools/QtTestBrowser/webview.cpp')
-rw-r--r--WebKitTools/QtTestBrowser/webview.cpp17
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)