protected override bool OnButtonPressEvent(Gdk.EventButton args) { if (args.Button == 3) { return(DrawOrderMenu(args)); } double x = args.X + action.X; double y = args.Y + action.Y; if (glass.Contains(x, y)) { glass.StartDrag(x, y, args.Time); } else if (has_limits && min_limit.Contains(x, y)) { min_limit.StartDrag(x, y, args.Time); } else if (has_limits && max_limit.Contains(x, y)) { max_limit.StartDrag(x, y, args.Time); } else { int position; if (BoxHit(x, y, out position)) { BoxXHitFilled(x, out position); glass.UpdateGlass = true; glass.SetPosition(position); glass.UpdateGlass = false; return(true); } } return(base.OnButtonPressEvent(args)); }