diff options
Diffstat (limited to 'src/yuzu/applets')
| -rw-r--r-- | src/yuzu/applets/qt_controller.cpp (renamed from src/yuzu/applets/controller.cpp) | 4 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_controller.h (renamed from src/yuzu/applets/controller.h) | 0 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_controller.ui (renamed from src/yuzu/applets/controller.ui) | 0 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_error.cpp (renamed from src/yuzu/applets/error.cpp) | 2 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_error.h (renamed from src/yuzu/applets/error.h) | 0 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_profile_select.cpp (renamed from src/yuzu/applets/profile_select.cpp) | 2 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_profile_select.h (renamed from src/yuzu/applets/profile_select.h) | 0 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_software_keyboard.cpp (renamed from src/yuzu/applets/software_keyboard.cpp) | 4 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_software_keyboard.h (renamed from src/yuzu/applets/software_keyboard.h) | 0 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_software_keyboard.ui (renamed from src/yuzu/applets/software_keyboard.ui) | 0 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_web_browser.cpp (renamed from src/yuzu/applets/web_browser.cpp) | 19 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_web_browser.h (renamed from src/yuzu/applets/web_browser.h) | 3 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_web_browser_scripts.h (renamed from src/yuzu/applets/web_browser_scripts.h) | 6 |
13 files changed, 31 insertions, 9 deletions
diff --git a/src/yuzu/applets/controller.cpp b/src/yuzu/applets/qt_controller.cpp index 836d90fda..97106d2cc 100644 --- a/src/yuzu/applets/controller.cpp +++ b/src/yuzu/applets/qt_controller.cpp @@ -12,8 +12,8 @@ #include "core/hle/service/hid/controllers/npad.h" #include "core/hle/service/hid/hid.h" #include "core/hle/service/sm/sm.h" -#include "ui_controller.h" -#include "yuzu/applets/controller.h" +#include "ui_qt_controller.h" +#include "yuzu/applets/qt_controller.h" #include "yuzu/configuration/configure_input.h" #include "yuzu/configuration/configure_input_profile_dialog.h" #include "yuzu/configuration/configure_motion_touch.h" diff --git a/src/yuzu/applets/controller.h b/src/yuzu/applets/qt_controller.h index 9b57aea1a..9b57aea1a 100644 --- a/src/yuzu/applets/controller.h +++ b/src/yuzu/applets/qt_controller.h diff --git a/src/yuzu/applets/controller.ui b/src/yuzu/applets/qt_controller.ui index c8cb6bcf3..c8cb6bcf3 100644 --- a/src/yuzu/applets/controller.ui +++ b/src/yuzu/applets/qt_controller.ui diff --git a/src/yuzu/applets/error.cpp b/src/yuzu/applets/qt_error.cpp index 085688cd4..45cf64603 100644 --- a/src/yuzu/applets/error.cpp +++ b/src/yuzu/applets/qt_error.cpp @@ -4,7 +4,7 @@ #include <QDateTime> #include "core/hle/lock.h" -#include "yuzu/applets/error.h" +#include "yuzu/applets/qt_error.h" #include "yuzu/main.h" QtErrorDisplay::QtErrorDisplay(GMainWindow& parent) { diff --git a/src/yuzu/applets/error.h b/src/yuzu/applets/qt_error.h index 8bd895a32..8bd895a32 100644 --- a/src/yuzu/applets/error.h +++ b/src/yuzu/applets/qt_error.h diff --git a/src/yuzu/applets/profile_select.cpp b/src/yuzu/applets/qt_profile_select.cpp index 62fd1141c..a56638e21 100644 --- a/src/yuzu/applets/profile_select.cpp +++ b/src/yuzu/applets/qt_profile_select.cpp @@ -14,7 +14,7 @@ #include "common/string_util.h" #include "core/constants.h" #include "core/hle/lock.h" -#include "yuzu/applets/profile_select.h" +#include "yuzu/applets/qt_profile_select.h" #include "yuzu/main.h" namespace { diff --git a/src/yuzu/applets/profile_select.h b/src/yuzu/applets/qt_profile_select.h index 4e9037488..4e9037488 100644 --- a/src/yuzu/applets/profile_select.h +++ b/src/yuzu/applets/qt_profile_select.h diff --git a/src/yuzu/applets/software_keyboard.cpp b/src/yuzu/applets/qt_software_keyboard.cpp index aa453a79f..848801cec 100644 --- a/src/yuzu/applets/software_keyboard.cpp +++ b/src/yuzu/applets/qt_software_keyboard.cpp @@ -11,8 +11,8 @@ #include "common/string_util.h" #include "core/core.h" #include "core/frontend/input_interpreter.h" -#include "ui_software_keyboard.h" -#include "yuzu/applets/software_keyboard.h" +#include "ui_qt_software_keyboard.h" +#include "yuzu/applets/qt_software_keyboard.h" #include "yuzu/main.h" #include "yuzu/util/overlay_dialog.h" diff --git a/src/yuzu/applets/software_keyboard.h b/src/yuzu/applets/qt_software_keyboard.h index 1a03c098c..1a03c098c 100644 --- a/src/yuzu/applets/software_keyboard.h +++ b/src/yuzu/applets/qt_software_keyboard.h diff --git a/src/yuzu/applets/software_keyboard.ui b/src/yuzu/applets/qt_software_keyboard.ui index b0a1fcde9..b0a1fcde9 100644 --- a/src/yuzu/applets/software_keyboard.ui +++ b/src/yuzu/applets/qt_software_keyboard.ui diff --git a/src/yuzu/applets/web_browser.cpp b/src/yuzu/applets/qt_web_browser.cpp index 34d3feb55..652d99570 100644 --- a/src/yuzu/applets/web_browser.cpp +++ b/src/yuzu/applets/qt_web_browser.cpp @@ -17,8 +17,8 @@ #include "core/frontend/input_interpreter.h" #include "input_common/keyboard.h" #include "input_common/main.h" -#include "yuzu/applets/web_browser.h" -#include "yuzu/applets/web_browser_scripts.h" +#include "yuzu/applets/qt_web_browser.h" +#include "yuzu/applets/qt_web_browser_scripts.h" #include "yuzu/main.h" #include "yuzu/util/url_request_interceptor.h" @@ -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) { diff --git a/src/yuzu/applets/web_browser.h b/src/yuzu/applets/qt_web_browser.h index 7ad07409f..7e9f703fc 100644 --- a/src/yuzu/applets/web_browser.h +++ b/src/yuzu/applets/qt_web_browser.h @@ -161,6 +161,9 @@ private: /// Loads the extracted fonts using JavaScript. void LoadExtractedFonts(); + /// Brings focus to the first available link element. + void FocusFirstLinkElement(); + InputCommon::InputSubsystem* input_subsystem; std::unique_ptr<UrlRequestInterceptor> url_interceptor; diff --git a/src/yuzu/applets/web_browser_scripts.h b/src/yuzu/applets/qt_web_browser_scripts.h index 992837a85..c4ba8d40f 100644 --- a/src/yuzu/applets/web_browser_scripts.h +++ b/src/yuzu/applets/qt_web_browser_scripts.h @@ -73,6 +73,12 @@ constexpr char LOAD_NX_FONT[] = R"( })(); )"; +constexpr char FOCUS_LINK_ELEMENT_SCRIPT[] = R"( +if (document.getElementsByTagName("a").length > 0) { + document.getElementsByTagName("a")[0].focus(); +} +)"; + constexpr char GAMEPAD_SCRIPT[] = R"( window.addEventListener("gamepadconnected", function(e) { console.log("Gamepad connected at index %d: %s. %d buttons, %d axes.", |
