From c2cf251dfe808e1a4e336dbf1cddc645d63c2e2f Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sun, 26 Jul 2009 18:51:13 +0200 Subject: A lot of fixes here: - CTRL + click browsing - mouse wheel gestures - cleaning a bit web* classes This has been possible restoring some code from rekonq 0.1 web classes implementation. --- src/webpage.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index bb6f0d9c..771b7f04 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -73,6 +73,8 @@ WebPage::WebPage(QObject *parent) : QWebPage(parent) + , m_keyboardModifiers(Qt::NoModifier) + , m_pressedButtons(Qt::NoButton) { setForwardUnsupportedContent(true); @@ -84,6 +86,34 @@ WebPage::WebPage(QObject *parent) } +bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) +{ + if (m_keyboardModifiers & Qt::ControlModifier || m_pressedButtons == Qt::MidButton) + { + Application::instance()->loadUrl(request.url(), Rekonq::NewTab); + m_keyboardModifiers = Qt::NoModifier; + m_pressedButtons = Qt::NoButton; + return false; + } + + if (frame == mainFrame()) + { + return QWebPage::acceptNavigationRequest(frame, request, type); + } + else + { + // if frame doesn't exists (perhaps) we are pointing to a blank target.. + if (!frame) + { + Application::instance()->loadUrl(request.url(), Rekonq::NewTab); + return false; + } + } + + return QWebPage::acceptNavigationRequest(frame, request, type); +} + + WebPage *WebPage::createWindow(QWebPage::WebWindowType type) { kDebug() << "WebPage createWindow slot"; -- cgit v1.2.1