diff options
-rw-r--r-- | src/bookmarks/bookmarksmanager.cpp | 2 | ||||
-rw-r--r-- | src/mainwindow.cpp | 24 | ||||
-rw-r--r-- | src/mainwindow.h | 6 | ||||
-rw-r--r-- | src/urltreeview.cpp | 4 | ||||
-rw-r--r-- | src/webview.cpp | 8 | ||||
-rw-r--r-- | src/webview.h | 1 |
6 files changed, 23 insertions, 22 deletions
diff --git a/src/bookmarks/bookmarksmanager.cpp b/src/bookmarks/bookmarksmanager.cpp index 95adf387..6a5417fc 100644 --- a/src/bookmarks/bookmarksmanager.cpp +++ b/src/bookmarks/bookmarksmanager.cpp @@ -66,7 +66,7 @@ void BookmarkOwner::openBookmark(const KBookmark & bookmark, { if (keyboardModifiers & Qt::ControlModifier || mouseButtons == Qt::MidButton) { - emit openUrl(bookmark.url(), Rekonq::NewCurrentTab); + emit openUrl(bookmark.url(), Rekonq::SettingOpenTab); } else { diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index af26ef42..d5831fdb 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -287,7 +287,7 @@ void MainWindow::setupActions() a->setShortcut( fullScreenShortcut ); a = actionCollection()->addAction( KStandardAction::Home ); - connect(a, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(homePage(Qt::MouseButtons))); + connect(a, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(homePage(Qt::MouseButtons, Qt::KeyboardModifiers))); KStandardAction::preferences(this, SLOT(preferences()), actionCollection()); a = KStandardAction::redisplay(m_view, SLOT(webReload()), actionCollection()); @@ -347,7 +347,7 @@ void MainWindow::setupActions() // ========================= History related actions ============================== a = actionCollection()->addAction( KStandardAction::Back ); - connect(a, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(openPrevious(Qt::MouseButtons))); + connect(a, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(openPrevious(Qt::MouseButtons, Qt::KeyboardModifiers))); m_historyBackMenu = new KMenu(this); a->setMenu(m_historyBackMenu); @@ -355,7 +355,7 @@ void MainWindow::setupActions() connect(m_historyBackMenu, SIGNAL(triggered(QAction *)), this, SLOT(openActionUrl(QAction *))); a = actionCollection()->addAction( KStandardAction::Forward ); - connect(a, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(openNext(Qt::MouseButtons))); + connect(a, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(openNext(Qt::MouseButtons, Qt::KeyboardModifiers))); // ============================== General Tab Actions ==================================== a = new KAction(KIcon("tab-new"), i18n("New &Tab"), this); @@ -955,9 +955,9 @@ void MainWindow::viewPageSource() } -void MainWindow::homePage(Qt::MouseButtons btn) +void MainWindow::homePage(Qt::MouseButtons mouseButtons, Qt::KeyboardModifiers keyboardModifiers) { - if(btn == Qt::MidButton) + if(mouseButtons == Qt::MidButton || keyboardModifiers == Qt::ControlModifier) Application::instance()->loadUrl( KUrl(ReKonfig::homePage()), Rekonq::SettingOpenTab ); else currentTab()->view()->load( QUrl(ReKonfig::homePage()) ); @@ -1001,15 +1001,14 @@ void MainWindow::browserLoading(bool v) } -void MainWindow::openPrevious(Qt::MouseButtons btn) +void MainWindow::openPrevious(Qt::MouseButtons mouseButtons, Qt::KeyboardModifiers keyboardModifiers) { QWebHistory *history = currentTab()->view()->history(); if (history->canGoBack()) { - if(btn == Qt::MidButton) + if(mouseButtons == Qt::MidButton || keyboardModifiers == Qt::ControlModifier) { - KUrl back = history->backItem().url(); - Application::instance()->loadUrl(back, Rekonq::SettingOpenTab); + Application::instance()->loadUrl(history->backItem().url(), Rekonq::SettingOpenTab); } else { @@ -1022,15 +1021,14 @@ void MainWindow::openPrevious(Qt::MouseButtons btn) } -void MainWindow::openNext(Qt::MouseButtons btn) +void MainWindow::openNext(Qt::MouseButtons mouseButtons, Qt::KeyboardModifiers keyboardModifiers) { QWebHistory *history = currentTab()->view()->history(); if (history->canGoForward()) { - if(btn == Qt::MidButton) + if(mouseButtons == Qt::MidButton || keyboardModifiers == Qt::ControlModifier) { - KUrl next = history->forwardItem().url(); - Application::instance()->loadUrl(next, Rekonq::SettingOpenTab); + Application::instance()->loadUrl(history->forwardItem().url(), Rekonq::SettingOpenTab); } else { diff --git a/src/mainwindow.h b/src/mainwindow.h index 4ccd7bf3..d1509066 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -87,7 +87,7 @@ private: void setupPanels(); public slots: - void homePage(Qt::MouseButtons = Qt::LeftButton); + void homePage(Qt::MouseButtons = Qt::LeftButton, Qt::KeyboardModifiers = Qt::NoModifier); /** * Notifies a message in a popup @@ -122,8 +122,8 @@ private slots: void updateWindowTitle(const QString &title = QString()); // history related - void openPrevious(Qt::MouseButtons = Qt::LeftButton); - void openNext(Qt::MouseButtons = Qt::LeftButton); + void openPrevious(Qt::MouseButtons = Qt::LeftButton, Qt::KeyboardModifiers = Qt::NoModifier); + void openNext(Qt::MouseButtons = Qt::LeftButton, Qt::KeyboardModifiers = Qt::NoModifier); // Find Action slots void find(const QString &); diff --git a/src/urltreeview.cpp b/src/urltreeview.cpp index 507a7973..aeaef2f7 100644 --- a/src/urltreeview.cpp +++ b/src/urltreeview.cpp @@ -95,8 +95,8 @@ void UrlTreeView::mouseReleaseEvent(QMouseEvent *event) if(!index.isValid()) return; - if(event->button() == Qt::MidButton) - validOpenUrl(qVariantValue< KUrl >(index.data(Qt::UserRole)), Rekonq::NewCurrentTab); + if(event->button() == Qt::MidButton || event->modifiers() == Qt::ControlModifier) + validOpenUrl(qVariantValue< KUrl >(index.data(Qt::UserRole)), Rekonq::SettingOpenTab); else if(event->button() == Qt::LeftButton) { diff --git a/src/webview.cpp b/src/webview.cpp index 2083cef3..e874411d 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -66,6 +66,7 @@ WebView::WebView(QWidget* parent) , _scrollTimer( new QTimer(this) ) , _VScrollSpeed(0) , _HScrollSpeed(0) + , _disableAutoScroll(false) { WebPage *page = new WebPage(this); setPage(page); @@ -320,6 +321,9 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) void WebView::mousePressEvent(QMouseEvent *event) { + QWebHitTestResult result = page()->mainFrame()->hitTestContent( event->pos() ); + _disableAutoScroll = result.isContentEditable(); + switch(event->button()) { case Qt::XButton1: @@ -426,9 +430,7 @@ void WebView::keyPressEvent(QKeyEvent *event) } } - QWebHitTestResult result = page()->mainFrame()->hitTestContent( mapFromGlobal( QCursor::pos() ) ); - - if( result.isContentEditable() ) + if(_disableAutoScroll) { KWebView::keyPressEvent(event); return; diff --git a/src/webview.h b/src/webview.h index 85ebf46a..0fe83ae4 100644 --- a/src/webview.h +++ b/src/webview.h @@ -79,6 +79,7 @@ private: QTimer *_scrollTimer; int _VScrollSpeed; int _HScrollSpeed; + bool _disableAutoScroll; }; #endif |