{"action":"opened","issue":{"url":"https://api.github.com/repos/adobe-photoshop/spaces-design/issues/1698","labels_url":"https://api.github.com/repos/adobe-photoshop/spaces-design/issues/1698/labels{/name}","comments_url":"https://api.github.com/repos/adobe-photoshop/spaces-design/issues/1698/comments","events_url":"https://api.github.com/repos/adobe-photoshop/spaces-design/issues/1698/events","html_url":"https://github.com/adobe-photoshop/spaces-design/issues/1698","id":93956254,"number":1698,"title":"Use Document.elementsFromPoint for drag-and-drop hit testing when available","user":{"login":"iwehrman","id":1075154,"avatar_url":"https://avatars.githubusercontent.com/u/1075154?v=3","gravatar_id":"","url":"https://api.github.com/users/iwehrman","html_url":"https://github.com/iwehrman","followers_url":"https://api.github.com/users/iwehrman/followers","following_url":"https://api.github.com/users/iwehrman/following{/other_user}","gists_url":"https://api.github.com/users/iwehrman/gists{/gist_id}","starred_url":"https://api.github.com/users/iwehrman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iwehrman/subscriptions","organizations_url":"https://api.github.com/users/iwehrman/orgs","repos_url":"https://api.github.com/users/iwehrman/repos","events_url":"https://api.github.com/users/iwehrman/events{/privacy}","received_events_url":"https://api.github.com/users/iwehrman/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/adobe-photoshop/spaces-design/labels/BLOCKED","name":"BLOCKED","color":"eb6420"},{"url":"https://api.github.com/repos/adobe-photoshop/spaces-design/labels/Code%20cleanup","name":"Code cleanup","color":"fad8c7"},{"url":"https://api.github.com/repos/adobe-photoshop/spaces-design/labels/Low%20Pri","name":"Low Pri","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-07-09T05:04:52Z","updated_at":"2015-07-09T05:04:52Z","closed_at":null,"body":"Once we upgrade to at least Chromium 45, we should use the new [Document.elementsFromPoint](http://dev.w3.org/csswg/cssom-view/#dom-document-elementsfrompoint) API to implement hit testing in our drag-and-drop code. Currently we have to repeatedly call `getBoundingClientRect` on each droppable node in the zone to find the droppable node under the cursor, which is a little crazy. Instead we should call this once and walk the sequence of elements to find one that is droppable.\r\n\r\n(Note that [Document.elementFromPoint](https://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPoint) is available in Chromium 39, but it isn't useful because the _drag target_ is always the top-most node under the cursor.) "}}