STR: 1. Type some text in a text area or input. 2. Select a portion of the text. 3. Drag the text to a destination within the same window (but don't drop). 4. Press Control. 5. Drop text. Expected results: After 4: Cursor changes to show a plus. After 5: Text is copied. Actual results: After 4: Nothing. After 5: Text is moved. If the pointer is moved between 4 and 5, the drag action changes as expected.
Part of the issue here is that GTK is not getting keyboard events because its grab widget is not in the window group of the focus window. (See bug 750061 comment 10 ff.)
Created attachment 620585 [details] [diff] [review] handle modifier changes in periodic synthetic mouse events for drag sources With the patch in bug 750061, the grab widget gets keyboard events and we just need to update our periodic motion event code to deal with them.