On Tue, 27 Dec 2022 13:19:06 GMT, Thiago Milczarek Sayao <tsa...@openjdk.org> wrote:
> This PR fixes 8273379. > > I reverted back to use GDK (from > [8225571](https://bugs.openjdk.org/browse/JDK-8225571)) to handle the events. > > It may also fix [8280383](https://bugs.openjdk.org/browse/JDK-8280383). > > There's also some cleaup. > > To do general testing (two tests were added): > `java @build/run.args -jar apps/toys/DragDrop/dist/DragDrop.jar` > > Information for reviewing: > * Previously an offscreen window where used to pass events. Now it gets the > window were Drag initially started > (`WindowContextBase::sm_mouse_drag_window`); > * There's a new `DragSourceContext` instead of global variables; > * DragView were simplified; > * It handles `GDK_GRAB_BROKEN` events (I still need to figure it out a test > case for this - It should happen when another window grabs the device during > the drag); > * There's a special case for `GDK_BUTTON_RELEASE` because `WindowContext` > will notify java about the button release and set `DnDGesture` to null before > the end of the DND. > * `gdk_drag_find_window_for_screen` -> pass the DragView window to be ignored > (as it would "steal" destination motion events); > * The Scenario were the drag source window closes during the drag is now > covered; > * It does not rely on `gdk_threads_add_idle` because it may be inconsistent. > > > ![image](https://user-images.githubusercontent.com/30704286/213877115-18f274ff-18c9-4d38-acc4-449f24174ecc.png) > ![image](https://user-images.githubusercontent.com/30704286/213877140-1d24c293-d70f-46e6-b040-c49170d2aa9a.png) This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jfx/pull/986