diff options
author | bunnei <bunneidev@gmail.com> | 2021-02-11 09:58:23 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-11 09:58:23 -0800 |
commit | e53b6ecc76cf8fe670e5056f75d8e798da66f9ff (patch) | |
tree | 21c0ed620d025fa8ab30465c83dfe57e4888816b /src/yuzu/bootmanager.cpp | |
parent | f06c3f4907fad252189980051b6ad27a84ffaaf5 (diff) | |
parent | 52b79ac00965aaf10db1a181067c2f2d33125171 (diff) |
Merge pull request #5869 from german77/mousePanning
input_common: Add mouse panning
Diffstat (limited to 'src/yuzu/bootmanager.cpp')
-rw-r--r-- | src/yuzu/bootmanager.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp index ffdf34a4a..d9a3035cb 100644 --- a/src/yuzu/bootmanager.cpp +++ b/src/yuzu/bootmanager.cpp @@ -405,12 +405,17 @@ void GRenderWindow::mouseMoveEvent(QMouseEvent* event) { if (event->source() == Qt::MouseEventSynthesizedBySystem) { return; } - auto pos = event->pos(); const auto [x, y] = ScaleTouch(pos); - input_subsystem->GetMouse()->MouseMove(x, y); + const int center_x = width() / 2; + const int center_y = height() / 2; + input_subsystem->GetMouse()->MouseMove(x, y, center_x, center_y); this->TouchMoved(x, y, 0); + if (Settings::values.mouse_panning) { + QCursor::setPos(mapToGlobal({center_x, center_y})); + } + emit MouseActivity(); } @@ -714,6 +719,11 @@ void GRenderWindow::showEvent(QShowEvent* event) { bool GRenderWindow::eventFilter(QObject* object, QEvent* event) { if (event->type() == QEvent::HoverMove) { + if (Settings::values.mouse_panning) { + auto* hover_event = static_cast<QMouseEvent*>(event); + mouseMoveEvent(hover_event); + return false; + } emit MouseActivity(); } return false; |