Allow views to detect if they are being painted for drag and drop #458
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rationale: The default painting behavior of components which are being dragged is not always ideal:
View.draggable()
.View.paint()
Background : Color::TRANSPARENT
on theView
at initialization (otherwise you'll drag a background-colored rectangle around the screen instead)Ideally it might be useful to have one or both of
View
to signal don't paint a drag image of me at all - probably as something you can set on the style - but being able to paint an alterative rendering of the component is useful as well, ORView
to lock itself into the set of recipients of mouse motion events until the next mouse up, without any implications about OS-level drag and dropbut this both solves the problem and is useful. I'll try to contribute an example of combining this with the undecorated window patches I submitted earlier to demonstrate the sort of thing it's good for, along the lines of this.