diff --git a/src/lib/webengine/webpage.cpp b/src/lib/webengine/webpage.cpp index 3e37e84c8..0ec1773d5 100644 --- a/src/lib/webengine/webpage.cpp +++ b/src/lib/webengine/webpage.cpp @@ -707,6 +707,11 @@ void WebPage::getLinkMarkers() { runJavaScript("Marker.generateMarker('a, input, button, [class*=\"btn\"], [aria-haspopup], [role=\"button\"], textarea, select, summary, [class=\"gap\"], [ng-click]')"); } +void WebPage::clearLinkMarkers() { + runJavaScript("document.querySelector('.eaf-marker-container').remove();"); + runJavaScript("document.querySelector('.eaf-style').remove();"); +} + QWebEnginePage* WebPage::createWindow(QWebEnginePage::WebWindowType type) { TabbedWebView *tView = qobject_cast(view()); diff --git a/src/lib/webengine/webpage.h b/src/lib/webengine/webpage.h index 988da3f37..efafae86c 100644 --- a/src/lib/webengine/webpage.h +++ b/src/lib/webengine/webpage.h @@ -77,6 +77,7 @@ public: static void removeSupportedScheme(const QString &scheme); void getLinkMarkers(); + void clearLinkMarkers(); Q_SIGNALS: void privacyChanged(bool status); diff --git a/src/lib/webengine/webview.cpp b/src/lib/webengine/webview.cpp index 1ea4c7017..be27644fa 100644 --- a/src/lib/webengine/webview.cpp +++ b/src/lib/webengine/webview.cpp @@ -60,6 +60,7 @@ WebView::WebView(QWidget* parent) , m_backgroundActivity(false) , m_page(0) , m_firstLoad(false) + , m_followLink(false) { connect(this, &QWebEngineView::loadStarted, this, &WebView::slotLoadStarted); connect(this, &QWebEngineView::loadProgress, this, &WebView::slotLoadProgress); @@ -1208,7 +1209,13 @@ void WebView::_keyReleaseEvent(QKeyEvent *event) } break; case Qt::Key_F: - page()->getLinkMarkers(); + if (!m_followLink) { + page()->getLinkMarkers(); + m_followLink = true; + } else { + page()->clearLinkMarkers(); + m_followLink = false; + } event->accept(); default: break; diff --git a/src/lib/webengine/webview.h b/src/lib/webengine/webview.h index 9893e798b..fe6c3c266 100644 --- a/src/lib/webengine/webview.h +++ b/src/lib/webengine/webview.h @@ -188,6 +188,7 @@ private: WebPage* m_page; bool m_firstLoad; + bool m_followLink; QPointer m_rwhvqt; WheelHelper m_wheelHelper;