diff options
author | Jonatan Pålsson <jonatan.palsson@pelagicore.com> | 2014-02-25 11:45:47 +0100 |
---|---|---|
committer | Jonatan Pålsson <jonatan.palsson@pelagicore.com> | 2014-02-25 11:45:47 +0100 |
commit | 45b4bdeaf1b398aa970458a158a137716a4d3322 (patch) | |
tree | 25f8e4adf79123badb078924073df51c65d6417f | |
parent | ebf6177c02eefc69e196f9879f9951d41c617479 (diff) | |
download | browser-poc-45b4bdeaf1b398aa970458a158a137716a4d3322.tar.gz |
Send tab and backtab on ST_LINK scroll
-rw-r--r-- | browser/browserview.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/browser/browserview.cpp b/browser/browserview.cpp index 9aeadd9..947efb0 100644 --- a/browser/browserview.cpp +++ b/browser/browserview.cpp @@ -120,19 +120,24 @@ void BrowserView::scroll (conn::brw::SCROLL_DIRECTION dir, conn::brw::SCROLL_TYP int stepSize = 50; int xMultiplier = 0; int yMultiplier = 0; + Qt::Key key(Qt::Key_Tab); switch (dir) { case conn::brw::SD_TOP: yMultiplier = -1; + key = Qt::Key_Backtab; break; case conn::brw::SD_BOTTOM: yMultiplier = 1; + key = Qt::Key_Tab; break; case conn::brw::SD_RIGHT: xMultiplier = 1; + key = Qt::Key_Tab; break; case conn::brw::SD_LEFT: xMultiplier = -1; + key = Qt::Key_Backtab; break; default: qDebug() << "Invalid direction"; @@ -142,9 +147,14 @@ void BrowserView::scroll (conn::brw::SCROLL_DIRECTION dir, conn::brw::SCROLL_TYP if (type == conn::brw::ST_PAGE) stepSize= this->height(); - if (m_webview.page() && m_webview.page()->mainFrame()) - m_webview.page()->mainFrame()->scroll(stepSize*xMultiplier, - stepSize*yMultiplier); + if (type == conn::brw::ST_LINK) { + QKeyEvent event(QEvent::KeyPress, key, Qt::NoModifier); + QCoreApplication::sendEvent(m_webview.page(), &event); + } else { + if (m_webview.page() && m_webview.page()->mainFrame()) + m_webview.page()->mainFrame()->scroll(stepSize*xMultiplier, + stepSize*yMultiplier); + } } void BrowserView::inputText (QString input) |