This bug happens for any filter that is curved. Filter that is not curved, like Text: Simple, doesn’t have this bug.
Typically, order of keyframes is intact after moving a keyframe around. But under a particular condition, a keyframe can cross over the one on the right.
It looks like this fix has introduced another bug.
The second keyframe can get past the third keyframe easily. Likewise, an nth keyframe can easily get past the n+1th keyframe as long as n is not 1.
Only the first keyframe can’t get past the second keyframe no matter what I try.
maxDragX property of a keyframe appears to be as big as m_filter->producer().get_out() in /qml/views/keyframes/Parameter.qml for any keyframes other than the first one.
But I don’t know why (result < minimum) becomes true for them in /models/keyframesmodel.cpp. minDragX on the other hand is working fine and an nth keyframe can’t cross over the n-1th one.
This new bug also affects filter parameters with no curves.