Findings on JDK-8211302

Thiago Milczarek Sayao thiago.sayao at clamed.com.br
Tue May 14 01:29:41 UTC 2019


Run it with -Djdk.gtk.version=2

If the problem stops, it's related.
________________________________
De: Magosányi Árpád <m4gw4s at gmail.com>
Enviado: segunda-feira, 13 de maio de 2019 10:53
Para: Thiago Milczarek Sayao; openjfx-dev at openjdk.java.net
Assunto: Re: Findings on JDK-8211302

Could this be related?
https://stackoverflow.com/questions/56003372/javafx-11-fires-events-randomly

On 5/13/19 2:29 PM, Thiago Milczarek Sayao wrote:
> Hello,
>
> I have been looking into JDK-8211302.
>
> https://bugs.openjdk.java.net/browse/JDK-8211302
>
> Did not find a solution, but the problem is because gdk_drag_context_get_selected_action(event->context) is returning ZERO. That's also why the cursor does not update on the drop location. Subsequent events do not get fired to complete the drop, because it falls on the abort code below:
>
> static void process_dnd_source_mouse_release(GdkWindow *window, GdkEventButton *event) {
>     (void)window;
>     (void)event;
>
>     glass_gdk_master_pointer_ungrab();
>
>     if (gdk_drag_context_get_selected_action(get_drag_context())) {
>         gdk_drag_drop(get_drag_context(), GDK_CURRENT_TIME);
>     } else {
>         gdk_drag_abort(get_drag_context(), GDK_CURRENT_TIME);
>         /* let the gdk_drag_abort messages handled before finish */
>         gdk_threads_add_idle((GSourceFunc) dnd_finish_callback, NULL);
>     }
> }
>
>
> I also suspect this will be needed, and it was introduced in GDK 3.20:
>
> gdk_drag_drop_done(get_drag_context(), TRUE)
>
> One solution is to check the version on build, other is to bundle the GTK lib (which makes it more safe to GDK changes).
>
> Cheers.




More information about the openjfx-dev mailing list