diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-07-27 22:46:27 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-27 22:46:27 -0400 |
commit | 5593a3716e918c36e9e9f4b0709f2f85e083b6bd (patch) | |
tree | bfcb19aed0cfd114210fdc85f197d8f6828065a1 /src/yuzu/applets/qt_web_browser.cpp | |
parent | d923ec5805e6cecde138559515ec5920f45fc452 (diff) | |
parent | ef29ed75b0f849b8eb5beeac3064557762e0c82b (diff) |
Merge pull request #6671 from jls47/master
applets/web: Addressing QT Navigation issues in Linux
Diffstat (limited to 'src/yuzu/applets/qt_web_browser.cpp')
-rw-r--r-- | src/yuzu/applets/qt_web_browser.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/yuzu/applets/qt_web_browser.cpp b/src/yuzu/applets/qt_web_browser.cpp index b112dd7b0..652d99570 100644 --- a/src/yuzu/applets/qt_web_browser.cpp +++ b/src/yuzu/applets/qt_web_browser.cpp @@ -107,6 +107,7 @@ void QtNXWebEngineView::LoadLocalWebPage(const std::string& main_url, is_local = true; LoadExtractedFonts(); + FocusFirstLinkElement(); SetUserAgent(UserAgent::WebApplet); SetFinished(false); SetExitReason(Service::AM::Applets::WebExitReason::EndButtonPressed); @@ -121,6 +122,7 @@ void QtNXWebEngineView::LoadExternalWebPage(const std::string& main_url, const std::string& additional_args) { is_local = false; + FocusFirstLinkElement(); SetUserAgent(UserAgent::WebApplet); SetFinished(false); SetExitReason(Service::AM::Applets::WebExitReason::EndButtonPressed); @@ -208,7 +210,7 @@ void QtNXWebEngineView::HandleWindowFooterButtonPressedOnce() { if (input_interpreter->IsButtonPressedOnce(button)) { page()->runJavaScript( QStringLiteral("yuzu_key_callbacks[%1] == null;").arg(static_cast<u8>(button)), - [&](const QVariant& variant) { + [this, button](const QVariant& variant) { if (variant.toBool()) { switch (button) { case HIDButton::A: @@ -364,6 +366,17 @@ void QtNXWebEngineView::LoadExtractedFonts() { Qt::QueuedConnection); } +void QtNXWebEngineView::FocusFirstLinkElement() { + QWebEngineScript focus_link_element; + + focus_link_element.setName(QStringLiteral("focus_link_element.js")); + focus_link_element.setSourceCode(QString::fromStdString(FOCUS_LINK_ELEMENT_SCRIPT)); + focus_link_element.setWorldId(QWebEngineScript::MainWorld); + focus_link_element.setInjectionPoint(QWebEngineScript::Deferred); + focus_link_element.setRunsOnSubFrames(true); + default_profile->scripts()->insert(focus_link_element); +} + #endif QtWebBrowser::QtWebBrowser(GMainWindow& main_window) { |