Midas state gesture overlap

This is a more complete version of midasState, therefore it should be pulled instead.
Each of these cases is pretty large. Consider moving it out into another function.