summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Morph2022-07-04 05:39:27 -0400
committerGravatar Morph2022-07-05 20:34:10 -0400
commitcbef6b1fca457b1a36df17c758eee94684020d6e (patch)
treee934df58ee6cc9ce3b073dd67c0b6950ff27ff6b
parentMerge pull request #8486 from liushuyu/github-actions-verify (diff)
downloadyuzu-cbef6b1fca457b1a36df17c758eee94684020d6e.tar.gz
yuzu-cbef6b1fca457b1a36df17c758eee94684020d6e.tar.xz
yuzu-cbef6b1fca457b1a36df17c758eee94684020d6e.zip
qt_web_browser: Fix button inputs with QtWebEngine
Button inputs were broken as button was assumed to be the bit position of NpadButton prior to the input rewrite. Since this was changed to use NpadButton directly, we should count the number of trailing zeros to determine the bit position.
-rw-r--r--src/yuzu/applets/qt_web_browser.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/yuzu/applets/qt_web_browser.cpp b/src/yuzu/applets/qt_web_browser.cpp
index 790edbb2a..89bd482e0 100644
--- a/src/yuzu/applets/qt_web_browser.cpp
+++ b/src/yuzu/applets/qt_web_browser.cpp
@@ -2,6 +2,8 @@
2// SPDX-License-Identifier: GPL-2.0-or-later 2// SPDX-License-Identifier: GPL-2.0-or-later
3 3
4#ifdef YUZU_USE_QT_WEB_ENGINE 4#ifdef YUZU_USE_QT_WEB_ENGINE
5#include <bit>
6
5#include <QApplication> 7#include <QApplication>
6#include <QKeyEvent> 8#include <QKeyEvent>
7 9
@@ -211,8 +213,10 @@ template <Core::HID::NpadButton... T>
211void QtNXWebEngineView::HandleWindowFooterButtonPressedOnce() { 213void QtNXWebEngineView::HandleWindowFooterButtonPressedOnce() {
212 const auto f = [this](Core::HID::NpadButton button) { 214 const auto f = [this](Core::HID::NpadButton button) {
213 if (input_interpreter->IsButtonPressedOnce(button)) { 215 if (input_interpreter->IsButtonPressedOnce(button)) {
216 const auto button_index = std::countr_zero(static_cast<u64>(button));
217
214 page()->runJavaScript( 218 page()->runJavaScript(
215 QStringLiteral("yuzu_key_callbacks[%1] == null;").arg(static_cast<u8>(button)), 219 QStringLiteral("yuzu_key_callbacks[%1] == null;").arg(button_index),
216 [this, button](const QVariant& variant) { 220 [this, button](const QVariant& variant) {
217 if (variant.toBool()) { 221 if (variant.toBool()) {
218 switch (button) { 222 switch (button) {
@@ -236,7 +240,7 @@ void QtNXWebEngineView::HandleWindowFooterButtonPressedOnce() {
236 240
237 page()->runJavaScript( 241 page()->runJavaScript(
238 QStringLiteral("if (yuzu_key_callbacks[%1] != null) { yuzu_key_callbacks[%1](); }") 242 QStringLiteral("if (yuzu_key_callbacks[%1] != null) { yuzu_key_callbacks[%1](); }")
239 .arg(static_cast<u8>(button))); 243 .arg(button_index));
240 } 244 }
241 }; 245 };
242 246