       console.log(@_listeners.byId[_viewId],_viewId,_ctrl)
     for _key, _value of @_listeners.byEvent
       _viewIdx = _value.indexOf(_viewId)
-      if _viewIdx != -1
-        _value.splice(_viewIdx,1)
+      _value.splice(_viewIdx,1) if ~_viewIdx
       if _key == 'rectHover'
         _intersectHoverIdx = @_listeners._rectHoverIntersectMode.indexOf( _viewId )
-        if _intersectHoverIdx != -1
+        if ~_intersectHoverIdx
           @_listeners._rectHoverIntersectMode.splice( _intersectHoverIdx, 1 )
     _wasFocused = false
     _elem = ELEM.get( _ctrl.elemId )
     for _statusItem in [ 'dragged', 'selected', 'hovered', 'active', 'focused', 'enabled' ]
       _viewIdx = @_listeners[_statusItem].indexOf(_viewId)
-      if _viewIdx != -1
+      if ~_viewIdx
         if _statusItem == 'dragged'
           _ctrl.endDrag( @status.crsrX, @status.crsrY )
         else if _statusItem == 'selected'

    _keyDowns = []
    unless @status.hasKeyDown( _keyCode ) and @_lastKeyDown != _keyCode
      for _viewId in _active
        _keyDowns.push( _viewId ) if _keyDowners.indexOf( _viewId ) != -1
      @status.addKeyDown( _keyCode )
    # repeat not implemented yet
    for _viewId in _keyDowns

  blur: (_ctrl)->
    _viewId = _ctrl.viewId
    _viewIdx = @_listeners.focused.indexOf(_viewId)
    if ~_viewIdx
      _elem = ELEM.get( _ctrl.elemId )
      @observe( _elem, 'mouseover', '_mouseOver' )
      @stopObserving( _elem, 'mouseout', '_mouseOut' )
