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.
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.
Comments
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.
15-10-2018
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).