<AWT Dev> <Awt Dev> [9] Review Request for 8025815: Child FileDialog of modal dialog does not get focus on Gnome

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Tue Jul 14 10:19:42 UTC 2015


Small comment:
GtkFileDialogPeer.c: you will need to add a CHECK_NULL( widgetFieldID) 
before setWindowMethodID, and CHECK_NULL(setWindowMethodID); at the end 
of the method is not necessary.

On 13.07.15 16:59, Semyon Sadetsky wrote:
> Hello,
>
> Please review fix for JDK9:
>
> bug: https://bugs.openjdk.java.net/browse/JDK-8025815
> wbrev: http://cr.openjdk.java.net/~ssadetsky/8025815/webrev.00/
>
> The root cause is a mixing of GTK and XLib windows. Normally Java uses 
> XLib windows and manage focus transitivity on its side. But for the 
> file chooser we use a native GTK widget if it is available and this 
> widget is crated without parent window because we don't have any other 
> GTK windows. This breaks the focus transitivity chain on Java side 
> because focus is managed by the WM for GTK dialog. Without parent 
> window the GTK file dialog is managed by the WM as a detached 
> standalone window. So modality and focus transitivity with Java 
> windows do not work correctly: the dialog can be overlapped by other 
> java windows and focus can be transferred to them.
> The proposed solution obtains XID of the GTK dialog window and pass it 
> to the java side to take into account in the focus transitivity chain 
> by sending messages to the WM.
>
> Yet another issue I found in the GTK file chooser code is a dispose 
> concurrency issue. The GTK dialog widget is being created in a 
> separate thread upon the setVisible(true) call but it can be hidden or 
> disposed without any synchronization with this thread. It can prevent 
> the VM from stopping if the dialog is hidden or disposed right after 
> its creation. This also was fixed in the proposed solution.
>
> --Semyon


-- 
Best regards, Sergey.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20150714/950a58b9/attachment.html>


More information about the awt-dev mailing list