Created — forked from anonymous/gist:3825036

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist
View gist:3829773
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
widgetAtPoint: (point) ->
_widgetsInTouch = []
 
for widget,i in @widgets
continue if widget instanceof App.Views.TextWidget
 
if widget.getIsVisible() and widget.isPointInside(point)
_widgetsInTouch[i] = widget
 
_widgetsInTouch.sort (a, b) ->
compA = a.getZOrder()
compB = b.getZOrder()
 
if compB < compA then -1 else (if compB > compA then 1 else 0)
 
return _widgetsInTouch[0]
  widgetAtPoint: (point) ->
    widgetWithHighestZ =
      _.max @widgets, (widget) ->
        if widget.getIsVisible() and widget.isPointInside(point)
          return widget.getZOrder() unless typeof widget.getZOrder isnt "function"
    return widgetWithHighestZ if widgetWithHighestZ

    for widget,i in @widgets
      if widget.getIsVisible() and widget.isPointInside(point)
        return widget

    null
  widgetAtPoint: (point) ->
    widgetWithHighestZ =  @widgetWithHighestZAtPoint(point)
    return widgetWithHighestZ if widgetWithHighestZ

    for widget,i in @widgets
      widget if widget.getIsVisible() and widget.isPointInside(point)

    null


  widgetWithHighestZAtPoint: (point) ->
    _.max @widgets, (widget) =>
      if widget.getIsVisible() and widget.isPointInside(point)
        return widget.getZOrder() unless typeof widget.getZOrder isnt "function"
    widgetWithHighestZ if widgetWithHighestZ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.