diff --git a/Core/ControlMapper.cpp b/Core/ControlMapper.cpp index 8d87d53604..bf856f9261 100644 --- a/Core/ControlMapper.cpp +++ b/Core/ControlMapper.cpp @@ -248,6 +248,8 @@ bool ControlMapper::UpdatePSPState(const InputMapping &changedMapping) { // We only request changing the buttons where the mapped input was involved. updatePSPButtons_(buttonMask & changedButtonMask, (~buttonMask) & changedButtonMask); + bool keyInputUsed = changedButtonMask != 0; + // OK, handle all the virtual keys next. For these we need to do deltas here and send events. for (int i = 0; i < VIRTKEY_COUNT; i++) { int vkId = i + VIRTKEY_FIRST; @@ -288,6 +290,8 @@ bool ControlMapper::UpdatePSPState(const InputMapping &changedMapping) { continue; } + keyInputUsed = true; + // Small values from analog inputs like gamepad sticks can linger around, which is bad here because we sum // up before applying deadzone etc. This means that it can be impossible to reach the min/max values with digital input! // So if non-analog events clash with analog ones mapped to the same input, decay the analog input, @@ -324,7 +328,7 @@ bool ControlMapper::UpdatePSPState(const InputMapping &changedMapping) { } } - return true; + return keyInputUsed; } bool ControlMapper::Key(const KeyInput &key, bool *pauseTrigger) { diff --git a/Windows/MainWindow.cpp b/Windows/MainWindow.cpp index e73b1ab6af..ff2edf3230 100644 --- a/Windows/MainWindow.cpp +++ b/Windows/MainWindow.cpp @@ -633,7 +633,7 @@ namespace MainWindow // Then never erase, let the OpenGL drawing take care of everything. return 1; - // Poor man's touch - mouse input. We send the data asynchronous touch events for minimal latency. + // Mouse input. We send asynchronous touch events for minimal latency. case WM_LBUTTONDOWN: if (!touchHandler.hasTouch() || (GetMessageExtraInfo() & MOUSEEVENTF_MASK_PLUS_PENTOUCH) != MOUSEEVENTF_FROMTOUCH_NOPEN)