public static void CheckGeneralHotkeys( IBezier3DSplineData splineData, Action <IReadOnly3DSplineData> onUpdateSpline) { var evt = Event.current; switch (evt.type) { // Undo Last Command case EventType.ValidateCommand: if (evt.commandName == UNDO_REDO_PERFORMED) { onUpdateSpline?.Invoke(splineData); } break; // Flip Spline case EventType.KeyDown: if (evt.keyCode == KeyCode.I) { if ((evt.modifiers & (EventModifiers.Control | EventModifiers.Command)) != 0) { splineData.Flip(); } } break; } }