JDK-8205479 : OS X: requestFocus() does not work properly for embedded frame
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 8u172
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: os_x
  • Submitted: 2018-06-21
  • Updated: 2019-03-19
  • Resolved: 2018-08-17
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 12 JDK 8
11.0.2Fixed 12 b14Fixed 8u202Fixed
Related Reports
Relates :  
It is impossible to transfer focus programmatically, (e.g. using requestFocus() method) to a component located at EmbeddedFrame if the embedded frame does not have focus.
Fix Request - Justification: The patch fixes focus transition issue for a component owned by an embedded frame - Risk Analysis: Low. Simple changes in EmbeddedFrame functionality for OS X platform - Testing: Client Libs regression tests. - The patch applies cleanly.

Problem description: On Mac OSX when focus is transferred to some component located at embedded frame, CPlatformEmbeddedFrame.requestWindowFocus() is called to activate owning frame. However that method does nothing, (i.e. no activation happens). As a result the focus cannot be transferred to the component because its owner is not active. Fix: CPlatformEmbeddedFrame.requestWindowFocus() should activate the embedded frame, (i.e. invoke notifyActivation() for the corresponding peer).