diff --git a/Core/ControlMapper.cpp b/Core/ControlMapper.cpp index 00a3dabf990d..a61604e09cb8 100644 --- a/Core/ControlMapper.cpp +++ b/Core/ControlMapper.cpp @@ -259,15 +259,17 @@ bool ControlMapper::UpdatePSPState(const InputMapping &changedMapping) { value = clamp_value(value, 0.0f, 1.0f); + // Derive bools from the floats using the device's threshold. + // NOTE: This must be before the equality check below. + bool bPrevValue = virtKeys_[i] >= threshold; + bool bValue = value >= threshold; + if (virtKeys_[i] != value) { // INFO_LOG(G3D, "vkeyanalog %s : %f", KeyMap::GetVirtKeyName(vkId), value); onVKeyAnalog(changedMapping.deviceId, vkId, value); virtKeys_[i] = value; } - // Derive bools from the floats using the device's threshold. - bool bPrevValue = virtKeys_[i] >= threshold; - bool bValue = value >= threshold; if (zeroOpposite) { // For analog stick events, always zero the "opposite" when we get a valid value. // Otherwise, lingering small values can create strange offsets when summing up later. diff --git a/ext/glslang b/ext/glslang index 77551c429f86..b34f619e1c85 160000 --- a/ext/glslang +++ b/ext/glslang @@ -1 +1 @@ -Subproject commit 77551c429f86c0e077f26552b7c1c0f12a9f235e +Subproject commit b34f619e1c85810dcb3c578107d2e48ba4ee2b37