소스 검색

yuzu: Read mouse wheel input

Narr the Reg 3 년 전
부모
커밋
87b02f78e1
3개의 변경된 파일10개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      src/input_common/input_mapping.cpp
  2. 6 0
      src/yuzu/configuration/configure_input_player.cpp
  3. 3 0
      src/yuzu/configuration/configure_input_player.h

+ 1 - 1
src/input_common/input_mapping.cpp

@@ -76,7 +76,7 @@ void MappingFactory::RegisterButton(const MappingData& data) {
         break;
     case EngineInputType::Analog:
         // Ignore mouse axis when mapping buttons
-        if (data.engine == "mouse") {
+        if (data.engine == "mouse" && data.index != 4) {
             return;
         }
         new_input.Set("axis", data.index);

+ 6 - 0
src/yuzu/configuration/configure_input_player.cpp

@@ -1466,6 +1466,12 @@ void ConfigureInputPlayer::mousePressEvent(QMouseEvent* event) {
     input_subsystem->GetMouse()->PressButton(0, 0, 0, 0, button);
 }
 
+void ConfigureInputPlayer::wheelEvent(QWheelEvent* event) {
+    const int x = event->angleDelta().x();
+    const int y = event->angleDelta().y();
+    input_subsystem->GetMouse()->MouseWheelChange(x, y);
+}
+
 void ConfigureInputPlayer::keyPressEvent(QKeyEvent* event) {
     if (!input_setter || !event) {
         return;

+ 3 - 0
src/yuzu/configuration/configure_input_player.h

@@ -116,6 +116,9 @@ private:
     /// Handle mouse button press events.
     void mousePressEvent(QMouseEvent* event) override;
 
+    /// Handle mouse wheel move events.
+    void wheelEvent(QWheelEvent* event) override;
+
     /// Handle key press events.
     void keyPressEvent(QKeyEvent* event) override;