summaryrefslogtreecommitdiff
path: root/src/yuzu/applets/qt_web_browser.cpp
diff options
context:
space:
mode:
authorjls47 <lukeschaefer@gmail.com>2021-07-17 16:10:15 -0700
committerMorph <39850852+Morph1984@users.noreply.github.com>2021-07-27 11:31:11 -0400
commit3109d1c3db496e05558ddd836c63dbbc3dab1b98 (patch)
tree3cbff9442f111b101535f79d44edfa9f2e8dacd8 /src/yuzu/applets/qt_web_browser.cpp
parentd6c799494c6235bc0796386bb31cae9fbe26f737 (diff)
qt_web_browser: Focus on the first link element
Focusing on the first link element fixes element navigation upon loading the web applet in games such as Super Mario Odyssey
Diffstat (limited to 'src/yuzu/applets/qt_web_browser.cpp')
-rw-r--r--src/yuzu/applets/qt_web_browser.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/yuzu/applets/qt_web_browser.cpp b/src/yuzu/applets/qt_web_browser.cpp
index b112dd7b0..cc1a42f74 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);
@@ -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) {