On Mon, 18 Dec 2023 11:19:18 GMT, Jose Pereda <jper...@openjdk.org> wrote:

>> This PR replaces the deprecated `gdk_pointer_grab` with `gdk_seat_grab`, and 
>> `gdk_pointer_ungrab ` with `gdk_seat_ungrab`, using runtime checks and 
>> wrapped functions for GTK 3.20+ (so systems without it still run with GTK 
>> 3.8+), and fixes the dragging issue on Wayland.
>
> Jose Pereda has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Add compile-time checks to GdkSeat

So it seems definitely related to the changes in this PR. 

Running with `GDK_DEBUG=nograbs` works (10 out of 10).

Adding some debug to the native code, and running with grabs, I can see:

When it works:

DatePickerTest STANDARD_OUT
    Glass GTK library to load is glassgtk3

loaded gdk_seat_grab
loaded gdk_display_get_default_seat
grab
grab
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
loaded gdk_seat_ungrab
ungrab
grab
ungrab
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
ungrab
grab

> Task :systemTests:test
...

(so test starts after window is grabbed and focused, as it should be).

When it fails:

DatePickerTest STANDARD_OUT
    Glass GTK library to load is glassgtk3

loaded gdk_seat_grab
loaded gdk_display_get_default_seat
grab
grab
found schema 'org.gnome.desktop.interface' and key 'scaling-factor'
loaded gdk_seat_ungrab
ungrab

> Task :systemTests:test
...

so window is not grabbed and not focused, and therefore native mouse clicks go 
elsewhere.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1305#issuecomment-1905121653

Reply via email to