summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-25 11:45:47 +0100
committerJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-25 11:45:47 +0100
commit45b4bdeaf1b398aa970458a158a137716a4d3322 (patch)
tree25f8e4adf79123badb078924073df51c65d6417f
parentebf6177c02eefc69e196f9879f9951d41c617479 (diff)
downloadbrowser-poc-45b4bdeaf1b398aa970458a158a137716a4d3322.tar.gz
Send tab and backtab on ST_LINK scroll
-rw-r--r--browser/browserview.cpp16
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)