{"action":"created","issue":{"url":"https://api.github.com/repos/phosphorjs/phosphor-tabs/issues/6","labels_url":"https://api.github.com/repos/phosphorjs/phosphor-tabs/issues/6/labels{/name}","comments_url":"https://api.github.com/repos/phosphorjs/phosphor-tabs/issues/6/comments","events_url":"https://api.github.com/repos/phosphorjs/phosphor-tabs/issues/6/events","html_url":"https://github.com/phosphorjs/phosphor-tabs/issues/6","id":123211720,"number":6,"title":"General policy on event suppression during drag actions.","user":{"login":"sccolbert","id":137289,"avatar_url":"https://avatars.githubusercontent.com/u/137289?v=3","gravatar_id":"","url":"https://api.github.com/users/sccolbert","html_url":"https://github.com/sccolbert","followers_url":"https://api.github.com/users/sccolbert/followers","following_url":"https://api.github.com/users/sccolbert/following{/other_user}","gists_url":"https://api.github.com/users/sccolbert/gists{/gist_id}","starred_url":"https://api.github.com/users/sccolbert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sccolbert/subscriptions","organizations_url":"https://api.github.com/users/sccolbert/orgs","repos_url":"https://api.github.com/users/sccolbert/repos","events_url":"https://api.github.com/users/sccolbert/events{/privacy}","received_events_url":"https://api.github.com/users/sccolbert/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/phosphorjs/phosphor-tabs/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-12-21T05:09:09Z","updated_at":"2015-12-21T17:51:28Z","closed_at":null,"body":"The Whatwg spec for drag/drop is clear:\r\n\r\n```\r\nFrom the moment that the user agent is to initiate the drag-and-drop operation, until the end of the drag-and-drop operation, device input events (e.g. mouse and keyboard events) must be suppressed.\r\n```\r\nhttps://html.spec.whatwg.org/multipage/interaction.html\r\n\r\nWe try to follow this in `phosphor-dragdrop`, but we miss a few input events (`'click'`, `'mouseover'`, etc.)\r\nhttps://github.com/phosphorjs/phosphor-dragdrop/blob/master/src/index.ts#L651\r\nhttps://github.com/phosphorjs/phosphor-dragdrop/blob/master/src/index.ts#L543\r\n\r\nWe recently updated `phosphor-splitpanel` to also attempt to suppress all input events during drag (but also missed some). This repo needs the same treatment. Clearly, it's easy to get this one wrong and have some input events leak by. \r\n\r\nMy question is, should even *try* to suppress all events, or just suppress the ones we use and some other sensible ones like `contextmenu`?\r\n\r\nIf we want to suppress them all and mimic whatwg policy for drag/drop, then we should think about adding something to `domutil` which captures all input events and redirects them to a target handler, and ensures each is suppressed.\r\n\r\n@afshin @blink1073 @dwillmer (@ellisonbg @jasongrout)"},"comment":{"url":"https://api.github.com/repos/phosphorjs/phosphor-tabs/issues/comments/166373054","html_url":"https://github.com/phosphorjs/phosphor-tabs/issues/6#issuecomment-166373054","issue_url":"https://api.github.com/repos/phosphorjs/phosphor-tabs/issues/6","id":166373054,"user":{"login":"afshin","id":159529,"avatar_url":"https://avatars.githubusercontent.com/u/159529?v=3","gravatar_id":"","url":"https://api.github.com/users/afshin","html_url":"https://github.com/afshin","followers_url":"https://api.github.com/users/afshin/followers","following_url":"https://api.github.com/users/afshin/following{/other_user}","gists_url":"https://api.github.com/users/afshin/gists{/gist_id}","starred_url":"https://api.github.com/users/afshin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/afshin/subscriptions","organizations_url":"https://api.github.com/users/afshin/orgs","repos_url":"https://api.github.com/users/afshin/repos","events_url":"https://api.github.com/users/afshin/events{/privacy}","received_events_url":"https://api.github.com/users/afshin/received_events","type":"User","site_admin":false},"created_at":"2015-12-21T17:51:28Z","updated_at":"2015-12-21T17:51:28Z","body":"We should implement this across the board for drag events ... which probably supports adding it to `domutil` since it's a pattern that comes up in a few spots."}}