Переглянути джерело

bootmanager: Allow mouse clicks only if touch is disabled

Previously mouse clicks will not register when touch is disabled.
This rectifies that and allows mouse clicks to be mapped to other buttons if the touchscreen is disabled.
Morph 5 роки тому
батько
коміт
484623cd61
1 змінених файлів з 13 додано та 3 видалено
  1. 13 3
      src/yuzu/bootmanager.cpp

+ 13 - 3
src/yuzu/bootmanager.cpp

@@ -382,7 +382,12 @@ void GRenderWindow::keyReleaseEvent(QKeyEvent* event) {
 }
 }
 
 
 void GRenderWindow::mousePressEvent(QMouseEvent* event) {
 void GRenderWindow::mousePressEvent(QMouseEvent* event) {
-    // touch input is handled in TouchBeginEvent
+    if (!Settings::values.touchscreen.enabled) {
+        input_subsystem->GetKeyboard()->PressKey(event->button());
+        return;
+    }
+
+    // Touch input is handled in TouchBeginEvent
     if (event->source() == Qt::MouseEventSynthesizedBySystem) {
     if (event->source() == Qt::MouseEventSynthesizedBySystem) {
         return;
         return;
     }
     }
@@ -398,7 +403,7 @@ void GRenderWindow::mousePressEvent(QMouseEvent* event) {
 }
 }
 
 
 void GRenderWindow::mouseMoveEvent(QMouseEvent* event) {
 void GRenderWindow::mouseMoveEvent(QMouseEvent* event) {
-    // touch input is handled in TouchUpdateEvent
+    // Touch input is handled in TouchUpdateEvent
     if (event->source() == Qt::MouseEventSynthesizedBySystem) {
     if (event->source() == Qt::MouseEventSynthesizedBySystem) {
         return;
         return;
     }
     }
@@ -411,7 +416,12 @@ void GRenderWindow::mouseMoveEvent(QMouseEvent* event) {
 }
 }
 
 
 void GRenderWindow::mouseReleaseEvent(QMouseEvent* event) {
 void GRenderWindow::mouseReleaseEvent(QMouseEvent* event) {
-    // touch input is handled in TouchEndEvent
+    if (!Settings::values.touchscreen.enabled) {
+        input_subsystem->GetKeyboard()->ReleaseKey(event->button());
+        return;
+    }
+
+    // Touch input is handled in TouchEndEvent
     if (event->source() == Qt::MouseEventSynthesizedBySystem) {
     if (event->source() == Qt::MouseEventSynthesizedBySystem) {
         return;
         return;
     }
     }