aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/bootmanager.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-03-08 14:50:58 -0800
committerGitHub <noreply@github.com>2021-03-08 14:50:58 -0800
commit9c4c9f1e7df65d74fed156c1788f48df6424e917 (patch)
treee04abbe4824d77458205596ad27f28816c38e597 /src/yuzu/bootmanager.cpp
parent69ce5e41ebd266b2cd04cb609663eaca21c8ded9 (diff)
parent4738e14cb052a44c53e47379e595f00cef034dca (diff)
Merge pull request #5990 from german77/mousePanningV2
InputCommon: Mouse fixes
Diffstat (limited to 'src/yuzu/bootmanager.cpp')
-rw-r--r--src/yuzu/bootmanager.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp
index 1c61d419d..ae49cbb45 100644
--- a/src/yuzu/bootmanager.cpp
+++ b/src/yuzu/bootmanager.cpp
@@ -383,6 +383,25 @@ void GRenderWindow::keyReleaseEvent(QKeyEvent* event) {
input_subsystem->GetKeyboard()->ReleaseKey(event->key());
}
+MouseInput::MouseButton GRenderWindow::QtButtonToMouseButton(Qt::MouseButton button) {
+ switch (button) {
+ case Qt::LeftButton:
+ return MouseInput::MouseButton::Left;
+ case Qt::RightButton:
+ return MouseInput::MouseButton::Right;
+ case Qt::MiddleButton:
+ return MouseInput::MouseButton::Wheel;
+ case Qt::BackButton:
+ return MouseInput::MouseButton::Backward;
+ case Qt::ForwardButton:
+ return MouseInput::MouseButton::Forward;
+ case Qt::TaskButton:
+ return MouseInput::MouseButton::Task;
+ default:
+ return MouseInput::MouseButton::Extra;
+ }
+}
+
void GRenderWindow::mousePressEvent(QMouseEvent* event) {
// Touch input is handled in TouchBeginEvent
if (event->source() == Qt::MouseEventSynthesizedBySystem) {
@@ -391,7 +410,8 @@ void GRenderWindow::mousePressEvent(QMouseEvent* event) {
auto pos = event->pos();
const auto [x, y] = ScaleTouch(pos);
- input_subsystem->GetMouse()->PressButton(x, y, event->button());
+ const auto button = QtButtonToMouseButton(event->button());
+ input_subsystem->GetMouse()->PressButton(x, y, button);
if (event->button() == Qt::LeftButton) {
this->TouchPressed(x, y, 0);
@@ -425,7 +445,8 @@ void GRenderWindow::mouseReleaseEvent(QMouseEvent* event) {
return;
}
- input_subsystem->GetMouse()->ReleaseButton(event->button());
+ const auto button = QtButtonToMouseButton(event->button());
+ input_subsystem->GetMouse()->ReleaseButton(button);
if (event->button() == Qt::LeftButton) {
this->TouchReleased(0);