public override GH_ObjectResponse RespondToMouseDown(GH_Canvas sender, GH_CanvasMouseEvent e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { ComponentWithDirectionLogic comp = Owner as ComponentWithDirectionLogic; if (DirectionX.Contains(e.CanvasLocation)) { if (comp.Direction == FaceDirection.X) { return(GH_ObjectResponse.Handled); } comp.RecordUndoEvent("Direction X"); comp.Direction = FaceDirection.X; comp.ExpireSolution(true); return(GH_ObjectResponse.Handled); } if (DirectionY.Contains(e.CanvasLocation)) { if (comp.Direction == FaceDirection.Y) { return(GH_ObjectResponse.Handled); } comp.RecordUndoEvent("Direction Y"); comp.Direction = FaceDirection.Y; comp.ExpireSolution(true); return(GH_ObjectResponse.Handled); } if (DirectionZ.Contains(e.CanvasLocation)) { if (comp.Direction == FaceDirection.Z) { return(GH_ObjectResponse.Handled); } comp.RecordUndoEvent("Direction Z"); comp.Direction = FaceDirection.Z; comp.ExpireSolution(true); return(GH_ObjectResponse.Handled); } } return(base.RespondToMouseDown(sender, e)); }