diff options
Diffstat (limited to 'src/citra_qt')
| -rw-r--r-- | src/citra_qt/bootmanager.cpp | 10 | ||||
| -rw-r--r-- | src/citra_qt/bootmanager.h | 4 | 
2 files changed, 13 insertions, 1 deletions
| diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp index 59cb1b1bc..948db384d 100644 --- a/src/citra_qt/bootmanager.cpp +++ b/src/citra_qt/bootmanager.cpp @@ -191,6 +191,7 @@ qreal GRenderWindow::windowPixelRatio() {  }  void GRenderWindow::closeEvent(QCloseEvent* event) { +    motion_emu = nullptr;      emit Closed();      QWidget::closeEvent(event);  } @@ -204,11 +205,13 @@ void GRenderWindow::keyReleaseEvent(QKeyEvent* event) {  }  void GRenderWindow::mousePressEvent(QMouseEvent* event) { +    auto pos = event->pos();      if (event->button() == Qt::LeftButton) { -        auto pos = event->pos();          qreal pixelRatio = windowPixelRatio();          this->TouchPressed(static_cast<unsigned>(pos.x() * pixelRatio),                             static_cast<unsigned>(pos.y() * pixelRatio)); +    } else if (event->button() == Qt::RightButton) { +        motion_emu->BeginTilt(pos.x(), pos.y());      }  } @@ -217,11 +220,14 @@ void GRenderWindow::mouseMoveEvent(QMouseEvent* event) {      qreal pixelRatio = windowPixelRatio();      this->TouchMoved(std::max(static_cast<unsigned>(pos.x() * pixelRatio), 0u),                       std::max(static_cast<unsigned>(pos.y() * pixelRatio), 0u)); +    motion_emu->Tilt(pos.x(), pos.y());  }  void GRenderWindow::mouseReleaseEvent(QMouseEvent* event) {      if (event->button() == Qt::LeftButton)          this->TouchReleased(); +    else if (event->button() == Qt::RightButton) +        motion_emu->EndTilt();  }  void GRenderWindow::ReloadSetKeymaps() { @@ -279,11 +285,13 @@ void GRenderWindow::OnMinimalClientAreaChangeRequest(  }  void GRenderWindow::OnEmulationStarting(EmuThread* emu_thread) { +    motion_emu = std::make_unique<Motion::MotionEmu>(*this);      this->emu_thread = emu_thread;      child->DisablePainting();  }  void GRenderWindow::OnEmulationStopping() { +    motion_emu = nullptr;      emu_thread = nullptr;      child->EnablePainting();  } diff --git a/src/citra_qt/bootmanager.h b/src/citra_qt/bootmanager.h index 43015390b..7dac1c480 100644 --- a/src/citra_qt/bootmanager.h +++ b/src/citra_qt/bootmanager.h @@ -11,6 +11,7 @@  #include <QThread>  #include "common/thread.h"  #include "core/frontend/emu_window.h" +#include "core/frontend/motion_emu.h"  class QKeyEvent;  class QScreen; @@ -156,6 +157,9 @@ private:      EmuThread* emu_thread; +    /// Motion sensors emulation +    std::unique_ptr<Motion::MotionEmu> motion_emu; +  protected:      void showEvent(QShowEvent* event) override;  }; | 
