   public var bottomPaddingLandscape: CGFloat?
   public var buttonsPadding: CGFloat
   public var buttonsPaddingLandscape: CGFloat?
+  public var buttonHitTestEdgeInsests: UIEdgeInsets
 
   public init(
     leadingPadding: CGFloat = 3,

  public var characters: [AnyObject]!
  /// Managed by KeyboardLayout
  internal var isPortrait: Bool = true
  public var hitTestEdgeInsets: UIEdgeInsets = UIEdgeInsets(top: -6, left: -6, bottom: -6, right: -6)

  // MARK: Init
  public init(style: KeyboardRowStyle, characters: [AnyObject]) {


  // MARK: Hit Test
  public override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
    if UIEdgeInsetsEqualToEdgeInsets(style.buttonHitTestEdgeInsests, UIEdgeInsetsZero) {
      return super.pointInside(point, withEvent: event)
    }

    let hitFrame = UIEdgeInsetsInsetRect(bounds, style.buttonHitTestEdgeInsests)
    return CGRectContainsPoint(hitFrame, point)
  }

