<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Small comment:<br>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      GtkFileDialogPeer.c: you will need to add a
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      CHECK_NULL(
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      widgetFieldID) before setWindowMethodID, and
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      CHECK_NULL(setWindowMethodID); at the end of the method is not
      necessary.<br>
      <br>
      On 13.07.15 16:59, Semyon Sadetsky wrote:<br>
    </div>
    <blockquote cite="mid:55A3C441.4050609@oracle.com" type="cite">Hello,
      <br>
      <br>
      Please review fix for JDK9:
      <br>
      <br>
      bug: <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8025815">https://bugs.openjdk.java.net/browse/JDK-8025815</a>
      <br>
      wbrev: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~ssadetsky/8025815/webrev.00/">http://cr.openjdk.java.net/~ssadetsky/8025815/webrev.00/</a>
      <br>
      <br>
      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.
      <br>
      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.
      <br>
      <br>
      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.
      <br>
      <br>
      --Semyon
      <br>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Best regards, Sergey. </pre>
  </body>
</html>