Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6595651

Focus transfers broken for applications embedding AWT across processes

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P2
    • Resolution: Fixed
    • Affects Version/s: 7
    • Fix Version/s: 7
    • Component/s: client-libs
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b25
    • CPU:
      generic
    • OS:
      windows

      Backports

        Description

        The fixes for 6458497 and 6506966 that went into the Windows port of awt_Component.cpp have broken focus transfers in the new out-of-process Java Plug-In. The basic problem is that the AWT EmbeddedFrame is placed into the component hierarchy of the browser, which is now a different process. When we attempt to transfer focus to the applet, the code in AwtComponent::AwtSetFocus() sees that the current focus owner's process ID is different from the Java process and blocks the focus transfer.

        Discussion with ###@###.### and others indicates that to cover this case, as well as the case where the out-of-process applet opens a top-level frame, the following logic is needed. When an EmbeddedFrame (WEmbeddedFrame) is created, it should record the process ID of the HWND into which it is embedded. Future focus transfers should be permitted from that process ID to the one of the Java process.

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                son Oleg Sukhodolsky (Inactive)
                Reporter:
                kbr Kenneth Russell (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: