{"action":"created","issue":{"url":"https://api.github.com/repos/01org/ozone-wayland/issues/384","labels_url":"https://api.github.com/repos/01org/ozone-wayland/issues/384/labels{/name}","comments_url":"https://api.github.com/repos/01org/ozone-wayland/issues/384/comments","events_url":"https://api.github.com/repos/01org/ozone-wayland/issues/384/events","html_url":"https://github.com/01org/ozone-wayland/pull/384","id":93419566,"number":384,"title":"Add support for receiving drag-and-drop data from other processes","user":{"login":"mcatanzaro","id":1424966,"avatar_url":"https://avatars.githubusercontent.com/u/1424966?v=3","gravatar_id":"","url":"https://api.github.com/users/mcatanzaro","html_url":"https://github.com/mcatanzaro","followers_url":"https://api.github.com/users/mcatanzaro/followers","following_url":"https://api.github.com/users/mcatanzaro/following{/other_user}","gists_url":"https://api.github.com/users/mcatanzaro/gists{/gist_id}","starred_url":"https://api.github.com/users/mcatanzaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcatanzaro/subscriptions","organizations_url":"https://api.github.com/users/mcatanzaro/orgs","repos_url":"https://api.github.com/users/mcatanzaro/repos","events_url":"https://api.github.com/users/mcatanzaro/events{/privacy}","received_events_url":"https://api.github.com/users/mcatanzaro/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":27,"created_at":"2015-07-07T02:14:52Z","updated_at":"2015-09-17T19:50:52Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/01org/ozone-wayland/pulls/384","html_url":"https://github.com/01org/ozone-wayland/pull/384","diff_url":"https://github.com/01org/ozone-wayland/pull/384.diff","patch_url":"https://github.com/01org/ozone-wayland/pull/384.patch"},"body":"Here's initial support for drag-and-drop, fixing #134. This is still a WIP. Note that this is the IPC sort of drag-and-drop (the Wayland replacement for ICCCM); dragging the Chrome window around is an unrelated problem.\r\n\r\nWhat works:\r\n\r\n * Dragging text into Chrome.\r\n * Dragging files into Chrome.\r\n\r\nDemos: https://people.gnome.org/~mcatanzaro/ozone-wayland/\r\n\r\nCaveats (this list is a bit long, but I figure it's better to post the pull request early for feedback):\r\n\r\n * Drags out of Chrome are not yet supported, only drags into Chrome. So you can't (yet) e.g. drag a tab from one window to another. This will be implemented in a separate pull request.\r\n * ~~There is some vertical offset bug I haven't figured out, so you have to drop things a good distance above the target for it to work.~~ Fixed thanks to your help.\r\n * ~~Drags from GTK+ apps seem to be artificially completed too soon, so it's hard to test them (you have to move quickly). I think this is more likely a GTK+ bug than a problem in my code, but I haven't tracked it down yet.~~ This is caused by [Wayland bug #91944](https://bugs.freedesktop.org/show_bug.cgi?id=91944). No changes in Ozone-Wayland are required.\r\n * ~~Sometimes the GPU process crashes after receiving a file. Probably a bug in my code.~~ Fixed this a while ago, somehow.\r\n * ~~In the Imgur demo, I have to drop the file twice before imgur notices it (not sure why).~~ This has also been fixed for a while, somehow.\r\n * After dragging a file, the web site does not actually have permission to open it (so e.g. in the Imgur example, Imgur knows what the file is, but the upload won't work). This is still broken.\r\n * ~~The GPU process crashes in `WaylandDataOffer::Receive` when dragging a flower in and out of the window rapidly. This still occurs. The problem is that data_offer_ is somehow invalid.~~ Fixed, it was a bug in my code.\r\n * ~~There are a couple TODOs left in the code for me to fix.~~ The remaining TODOs are minor enhancements.\r\n\r\nBonus: This includes a bit of plumbing needed for clipboard (copy/paste), which is a related problem."},"comment":{"url":"https://api.github.com/repos/01org/ozone-wayland/issues/comments/141206461","html_url":"https://github.com/01org/ozone-wayland/pull/384#issuecomment-141206461","issue_url":"https://api.github.com/repos/01org/ozone-wayland/issues/384","id":141206461,"user":{"login":"mcatanzaro","id":1424966,"avatar_url":"https://avatars.githubusercontent.com/u/1424966?v=3","gravatar_id":"","url":"https://api.github.com/users/mcatanzaro","html_url":"https://github.com/mcatanzaro","followers_url":"https://api.github.com/users/mcatanzaro/followers","following_url":"https://api.github.com/users/mcatanzaro/following{/other_user}","gists_url":"https://api.github.com/users/mcatanzaro/gists{/gist_id}","starred_url":"https://api.github.com/users/mcatanzaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcatanzaro/subscriptions","organizations_url":"https://api.github.com/users/mcatanzaro/orgs","repos_url":"https://api.github.com/users/mcatanzaro/repos","events_url":"https://api.github.com/users/mcatanzaro/events{/privacy}","received_events_url":"https://api.github.com/users/mcatanzaro/received_events","type":"User","site_admin":false},"created_at":"2015-09-17T19:50:52Z","updated_at":"2015-09-17T19:50:52Z","body":"Thanks for the review. I rebased and got rid of the problematic `delayed_drop_target_event_`."}}